原题链接:513. 找树左下角的值
思路:
找出二叉树的 最底层 最左边 节点的值
此时直接使用层序遍历,记录最后一层最左边的值就可以了 也就是最后一层的que.front();
那么如何判断是最后一层呢? 其实并不需要进行判断,只需要在进行每层的层序遍历时,
将result = que.front()也就是每层的最左边一个元素即可。
全代码:
class Solution {
public:
int findBottomLeftValue(TreeNode* root) {
queue<TreeNode*> que;
int result = 0;
if(root == NULL) return NULL;
que.push(root);
while(!que.empty())
{
int size = que.size();
for(int i = 0; i < size; i++)
{
TreeNode* Node = que.front();
que.pop();
//每过一层记录一次头结点,最后一次记录的就是最底层最左边的结点的值
if(i == 0) result = Node ->val;
if(Node ->left) que.push(Node ->left);
if(Node ->right) que.push(Node ->right);
}
}
return result;
}
};