题解 | #牛牛的N叉树#
牛牛的N叉树
https://www.nowcoder.com/practice/123742d6dac042d08521f3d0edf68d22
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param root TreeNode类 # @return int整型 # class Solution: def maxDepth(self , root: TreeNode) -> int: # write code here # 左子女右兄弟 # 最大深度,可以用dfs来遍历 # 当一个节点没有左节点就是叶节点了 depths = [] def dfs(root, depth): # if not root: return if not root.left: if not root.right: # 无子女无兄弟 depths.append(depth) return # BC else: # 还有兄弟节点,可能更深 dfs(root.right, depth) # 有子女 dfs(root.left, depth+1) # 同时扩展兄弟 dfs(root.right, depth) dfs(root, 1) # 初始一层 if depths: return max(depths) else: return 0
二叉树的遍历,同时用dfs来传递depth信息,boundary condition稍微改一下就行。