-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaddOneRowToThree.py
More file actions
30 lines (26 loc) · 1001 Bytes
/
addOneRowToThree.py
File metadata and controls
30 lines (26 loc) · 1001 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# problem: https://leetcode.com/problems/add-one-row-to-tree/
# Runtime: 48 ms, faster than 93.90% of Python3 online submissions for Add One Row to Tree.
# Memory Usage: 16.9 MB, less than 48.01% of Python3 online submissions for Add One Row to Tree.
# Definition for a binary tree node.
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def traverse(self, node, d, v):
if not node:
return
if not d-1:
tmp = node.left
node.left = TreeNode(val=v, left=tmp)
tmp = node.right
node.right = TreeNode(val=v, right=tmp)
return
self.traverse(node.left, d-1, v)
self.traverse(node.right, d-1, v)
def addOneRow(self, root: TreeNode, v: int, d: int) -> TreeNode:
if not d-1:
return TreeNode(val=v, left=root)
self.traverse(root, d-1, v)
return root