Leetcode 623 Solution
This article provides solution to leetcode question 623 (add-one-row-to-tree)
Access this page by simply typing in "lcs 623" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/add-one-row-to-tree
Solution
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def addOneRow(self, root: TreeNode, v: int, d: int) -> TreeNode:
if d == 1:
new_root = TreeNode(v)
new_root.left = root
return new_root
q = [root]
d -= 1
while q:
if d == 1:
break
s = len(q)
for _ in range(s):
node = q.pop(0)
if node.left:
q.append(node.left)
if node.right:
q.append(node.right)
d -= 1
for node in q:
new_left = TreeNode(v)
new_right = TreeNode(v)
new_left.left = node.left
new_right.right = node.right
node.left = new_left
node.right = new_right
return root