bfs dfs 两种解法
bfs 没有直接使用collections.deque, 而是使用了两个列表, nodelist 和 tmplist
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def maxDepth(self, root: TreeNode) -> int:
if not root:return 0
node_list,res=[root],0
while node_list:
temp_list=[]
for node in node_list:
if node.left:temp_list.append(node.left)
if node.right:temp_list.append(node.right)
node_list=temp_list
res+=1
return res
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 maxDepth(self, root: TreeNode) -> int:
if not root: return 0
return max(self.maxDepth(root.left),self.maxDepth(root.right))+1