题目:给定二叉树,找到树的最后一行中最左边的值
示例:
代码:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int findBottomLeftValue(TreeNode root) {
Queue <TreeNode> queue=new LinkedList<>();
int num=0;
int length=0;
TreeNode node=null;
if(root.left==null&&root.right==null)
{
num=root.val;
}
else
{
if(root.left!=null)
{
queue.add(root.left);
}
if(root.right!=null)
{
queue.add(root.right);
}
while(queue.size()>0)
{
length=queue.size();
for(int i=0;i<length;i++)
{
node=queue.poll();
if(i==0)
{
num=node.val;
}
if(node.left!=null)
{
queue.add(node.left);
}
if(node.right!=null)
{
queue.add(node.right);
}
}
}
}
return num;
}
}
思路:求解最左角的树值,和上一个问题一样,一次访问每层的树值,记录每层的第一个值就行,采用队列保存每层的节点。