给定一个二叉树的 根节点
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
java 解题思路及 代码实现
package com.java.leetcode.tree;import com.java.leetcode.compent.TreeNode;import java.util.ArrayDeque;
import java.util.Deque;/*** 给定一个二叉树的 根节点 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*/
public class findBottomLeftValue513 {/*** 首先拿到该题目首先想到 层序遍历获取到最后一层的第一个节点 即为所要寻找的结果值* 因此有如下代码 逻辑** @param root* @return*/public int findBottomLeftValue(TreeNode root) {if(root==null){return 0;}int res=-1000;Deque<TreeNode> dq=new ArrayDeque<>();dq.offer(root);while(!dq.isEmpty()){int size=dq.size();for(int i=0;i<size;i++){TreeNode node=dq.poll();if(i==0){res=node.val;}if(node.left!=null){dq.offer(node.left);}if(node.right!=null){dq.offer(node.right);}}}return res;}
}