文章目录
- 题目描述
- 解题思路
- 代码
题目描述
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。
假设二叉树中至少有一个节点。
示例 1:
输入: root = [2,1,3]
输出: 1
示例 2:
输入: [1,2,3,4,null,5,6,null,null,7]
输出: 7
提示:
二叉树的节点个数的范围是 [1,104]
-231 <= Node.val <= 231 - 1
解题思路
可以采用层序遍历的方法解决这个问题,下面代码中注释了
代码
class Solution {//使用层序遍历,每遍历到新的一层的时候就更新一下结果为每层的第一个节点//最后结果保存的就是最左下角的节点public int findBottomLeftValue(TreeNode root) {Queue<TreeNode> queue = new LinkedList<>();int result = 0;if (root==null){return 0;}queue.offer(root);while (!queue.isEmpty()){int size = queue.size();for (int i = 0; i < size; i++) {TreeNode node = queue.poll();//如果是这一层的第一个节点就保留一下if (i==0){result = node.val;}if (node.left!=null){queue.offer(node.left);}if (node.right!=null){queue.offer(node.right);}}}return result;}
}