给定一个二叉树,在树的最后一行找到最左边的值。
示例 1:
输入:
2
/ \
1 3
输出:
1
示例 2:
输入:
1
/ \
2 3
/ / \
4 5 6
/
7
输出:
7
注意: 您可以假设树(即给定的根节点)不为 NULL。
class Solution {
public int findBottomLeftValue(TreeNode root) {
TreeNode cur = null;
Queue<TreeNode> queue = new LinkedList();
queue.offer(root);
while(!queue.isEmpty()){
cur = queue.poll();
if(cur.right != null)
queue.offer(cur.right); //尤其是这里cur
if(cur.left != null)
queue.offer(cur.left);
}
return cur.val;
}
}
(1)注意cur和root,
(2)顺序(按层打印)
(3)开始root入队
class Solution {
public int findBottomLeftValue(TreeNode root) {
int pre = 0;
Queue<TreeNode> queue = new LinkedList();
queue.offer(root);
while(!queue.isEmpty()){
TreeNode tmp = queue.peek();
pre = tmp.val;
int count = queue.size();
for(int i=0;i<count;i++){
TreeNode cur = queue.poll();
if(cur.left != null)
queue.offer(cur.left);
if(cur.right != null)
queue.offer(cur.right);
}
}
return pre;
}
}