题目:
Given a binary tree, find the leftmost value in the last row of the tree.
Example 1:
Input: 2 / \ 1 3 Output: 1
Example 2:
Input: 1 / \ 2 3 / / \ 4 5 6 / 7 Output: 7
Note: You may assume the tree (i.e., the given root node) is not NULL.
思路:对二叉树进行广搜,并设立一个变量,每次搜索都将点的val值赋给这个变量,搜索的结果即为题目所求。搜索顺序不能随便设置,一开始先搜索左端点会导致结果错误。
代码:
class Solution {
public:
int findBottomLeftValue(TreeNode* root) {
queue<TreeNode*> q;
q.push(root);
int res;
while (!q.empty()) {
TreeNode* temp = q.front();
res = temp->val;
q.pop();
if (temp->right != NULL) {
q.push(temp->right);
}
if (temp->left != NULL) {
q.push(temp->left);
}
}
return res;
}
};