给定一个二叉树,在树的最后一行找到最左边的值。
示例 1:
输入:
2
/ \
1 3
输出:
1
示例 2:
输入:
1
/ \
2 3
/ / \
4 5 6
/
7
输出:
7
注意: 您可以假设树(即给定的根节点)不为 NULL。
解
按层遍历树,唯一不同的是需要从右往左遍历,队列尾部就是左下角元素。如示例二的遍历顺序为:
1 23 654 7
public int findBottomLeftValue(TreeNode root) {
Queue<TreeNode> q = new LinkedList<>();
q.offer(root);
while(!q.isEmpty()){
root = q.poll();
if(root.right!=null)
q.offer(root.right);
if(root.left!=null)
q.offer(root.left);
}
return root.val;
}
网友评论