题目描述:
给定一个二叉树,在树的最后一行找到最左边的值。
示例 1:
输入:
2
/ \
1 3
输出:
1
示例 2:
输入:
1
/ \
2 3
/ / \
4 5 6
/
7
输出:
7
注意: 您可以假设树(即给定的根节点)不为 NULL。
代码:层次遍历
class Solution {
public:
int findBottomLeftValue(TreeNode* root) {
if(!root->left&&!root->right)return root->val;
queue<TreeNode *>q;
q.push(root);
while(!q.empty()){
int flag=0;//flag用来判断是否是最后一行
queue<TreeNode *>qt;
while(!q.empty()){
TreeNode *t=q.front();
q.pop();
if(t->left){qt.push(t->left);if(t->left->left||t->left->right)flag=1;}
if(t->right){qt.push(t->right);if(t->right->left||t->right->right)flag=1;}
}
if(flag)q=qt;
else return qt.front()->val;
}
}
};