Given the root of a binary tree, return the leftmost value in the last row of the tree.
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/find-bottom-left-tree-value
an example
leverage the broadcast priority search to traversal all the elements in the TREE. In addition, traverse the sub-right tree, then the sub-left tree.
#include <queue>
#include <iostream>
#include <vector>
using namespace std;
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode() : val(0), left(nullptr), right(nullptr) {}
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};
class Solution {
public:
int findBottomLeftValue(TreeNode* root) {
vector<int> values;
queue<TreeNode *> qu;
qu.push(root);
while (!qu.empty()) {
TreeNode *tmp_node = qu.front();
values.emplace_back(tmp_node->val);
qu.pop();
if (tmp_node->right) {
qu.push(tmp_node->right);
}
if (tmp_node->left) {
qu.push(tmp_node->left);
}
}
return *(values.end() - 1);
}
};
int main()
{
TreeNode *head = new TreeNode(2);
head->left = new TreeNode(1);
head->right = new TreeNode(3);
Solution s;
int res = s.findBottomLeftValue(head);
std::cout << "The res:" << res;
return 0;
}
Starting program: /mnt/c/Users/sunny/Desktop/practices for cmake/test
The res:1[Inferior 1 (process 1143) exited normally]