给定一个二叉树 root
,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例 1:
输入:root = [3,9,20,null,null,15,7] 输出:3
示例 2:
输入:root = [1,null,2] 输出:2
思路:求二叉树的深度,可以使用二叉树的层序遍历,层序遍历有几层就说明其深度是多少。
代码(python):
class Solution(object):
def maxDepth(self, root):
if not root: #判空
return 0
result = []
deque = collections.deque([root]) #利用双端队列,初始将root放入
while deque:
level = [] #每一层的节点
for _ in range(len(deque)):
cur = deque.popleft() #先入先出,左端弹出先进入的节点
level.append(cur.val)
if cur.left:
deque.append(cur.left)
if cur.right:
deque.append(cur.right)
result.append(level)
return len(result) #深度即二叉树层序遍历有几层