题目
解题
算法:
DFS深度优先搜索和BFS广度优先搜索
1.递归
这里算法代码是递归,但实际使用的是DFS,深度优先搜索
算法:
步骤:
code:
# 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 root == None:
return 0
else:
left_H = self.maxDepth(root.left)
right_H = self.maxDepth(root.right)
return 1 + max(left_H, right_H)
结果:
2.迭代
这里算法代码是迭代,但实际使用的是BFS,广度优先搜索,最标准的使用方法就是栈。
code:
# 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:
stack = []
if root != None:
stack.append((1,root))
high = 0
while stack != []:
c_h, root = stack.pop()
if root != None:
high = max(high,c_h)
stack.append((c_h+1,root.left))
stack.append((c_h+1,root.right))
return high
结果:
3.19
over
作者:LeetCode
链接:https://leetcode-cn.com/problems/same-tree/solution/xiang-tong-de-shu-by-leetcode/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。