题目
给一颗树的第n层加入v值。
我的代码
思路比较简单,就是DFS。
分为三种情况,一种是下一层,那么直接添加。一种是要在第一层,是一个特殊情况,其他情况下往下逐层遍历即可。
# 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 root:
if d==1:
newNode= TreeNode(v)
newNode.left=root
return newNode
elif d==2:
newNode1=TreeNode(v)
newNode1.left=root.left
root.left=newNode1
newNode2=TreeNode(v)
newNode2.right=root.right
root.right=newNode2
else:
self.addOneRow(root.left,v,d-1)
self.addOneRow(root.right,v,d-1)
return root
查询了结果,看到了效率高的答案也是用了相似的解法。