Given a binary tree, find the leftmost value in the last row of the tree.
Example 1:
Input: 2 / \ 1 3 Output: 1
Example 2:
Input: 1 / \ 2 3 / / \ 4 5 6 / 7 Output: 7
Note: You may assume the tree (i.e., the given root node) is not NULL.
我的思路:
1 使用层序遍历一定能够遍历到最左边的数,而且这个时候队列中只有一个元素。但是注意的是,为了最后弹出的是最左边的数,遍历顺序是从右到左
class Solution {
public:
int findBottomLeftValue(TreeNode* root) {
int res=0;
queue<TreeNode*> q;
q.push(root);
while(!q.empty())
{
int n=q.size();
while(n--)
{
TreeNode* cur=q.front();
res=cur->val;
q.pop();
if(cur->right) q.push(cur->right);
if(cur->left) q.push(cur->left);
}
}
return res;
}
};