题目:
题解:
- 利用二叉树的层序遍历来寻找最后一层的最左边节点的值,注意进队列方式为从右至左的,这样保证最后的p为最后一层的最左边的节点。
代码如下:
class Solution {
public:
//层序遍历:从右至左,这样最后一个节点的值就是最左下角的值
int findBottomLeftValue(TreeNode* root) {
if(!root)return -1;
queue<TreeNode*> q;
q.push(root);
TreeNode* p=nullptr;
while(!q.empty()){
p=q.front();q.pop();
if(p->right)q.push(p->right);
if(p->left)q.push(p->left);
}
//p为最后一层最左边的节点
return p->val;
}
};