513. 找树左下角的值

Problem: 513. 找树左下角的值

思路

这道题用层序遍历非常简单,左下角的值也就是每一层最左边的值,我们只需要遍历时,记录每一层的大小,将第一个数记录下来就可以了。

记得有一道层序遍历的题目与之非常相识。忘记是那一道题目了。

复杂度

时间复杂度:

添加时间复杂度, 示例: $O(n)$

空间复杂度:

添加空间复杂度, 示例: $O(n)$

Code

[]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
public:
int findBottomLeftValue(TreeNode* root) {
queue<TreeNode*> queue;
queue.push(root);
int res;
while (!queue.empty()) {
int queueSize = queue.size();
for (int i = 0; i < queueSize; i++) {
TreeNode* node = queue.front();
// cout << node->val << endl;
if (i == 0)
res = node->val;
queue.pop();
if (node->left != nullptr)
queue.push(node->left);
if (node->right != nullptr)
queue.push(node->right);
}
}
return res;
}
};