思路:使用队列进行层序遍历的同时,用一个变量存储每层的第一个节点即可。
class Solution {
public:
int findBottomLeftValue(TreeNode* root) {
queue<TreeNode*> q;
q.push(root);
int res;
while (!q.empty())
{
int size = q.size();
res = q.front()->val; //存储该层第一个节点
while (size -- )
{
TreeNode* t = q.front();
q.pop();
if (t->left) q.push(t->left);
if (t->right) q.push(t->right);
}
}
return res;
}
};