LeetCode二叉树的最大深度(Python)——深度、广度优先遍历

题目

LeetCode二叉树的最大深度(Python)——深度、广度优先遍历

解题思路

这应该是二叉树入门题了,关于深度、广度优先遍历之前的博客也讲过,直接上代码。

深度优先遍历 / 递归(即从最深的那个节点开始,往上加,碰到叶节点就比较当前叶节点左右子树最大深度,然后继续往上加直到根节点):
LeetCode二叉树的最大深度(Python)——深度、广度优先遍历
执行结果为:
LeetCode二叉树的最大深度(Python)——深度、广度优先遍历

广度优先遍历 / 迭代(即从根节点开始,有下一层则加1):
LeetCode二叉树的最大深度(Python)——深度、广度优先遍历

核心思想就是,一次性加入当前层所有子节点(如果有的话)然后一次性删除当前层所有节点,直到实际上的队列里面全都是None,不再加入新节点,退出循环。

执行结果为:
LeetCode二叉树的最大深度(Python)——深度、广度优先遍历