题目链接
英文链接:https://leetcode.com/problems/find-bottom-left-tree-value/
中文链接:https://leetcode-cn.com/problems/find-bottom-left-tree-value/
题目详述
给定一个二叉树,在树的最后一行找到最左边的值。
示例 1:
1 | 输入: |
示例 2:
1 | 输入: |
注意: 您可以假设树(即给定的根节点)不为 NULL。
题目详解
方法一:运用 BFS。
- 进行层次遍历,更新每一层最左边的结点。
- 最后的结果就是最后一层最左边的结点,返回它的值即可。
1 | public class LeetCode_00513 { |
方法二:运用 DFS。
- 构造搜索方法 dfs,当前树的最后一行的最左边结点的值和层数。
- 如果当前结点为叶子节点,直接返回当前结点值的和层数。
- 如果当前结点的左子树为空,右子树不为空,返回右子树递归搜索的结果。
- 如果当前结点的左子树不为空,右子树为空,返回左子树递归搜索的结果。
- 如果当前结点的左子树和右子树均不为空。则进行递归得到左子树的右子树搜索得到的结果,记为
left
和right
。 - 如果
left[1] <= right[1]
,即left
比right
层数更深或者层数相同(层数相同找左边即left
),返回left
,否则返回right
。
1 | public class LeetCode_00513 { |