【513】 Find Bottom Left Tree Value

来源:互联网 发布:php use和include区别 编辑:程序博客网 时间:2024/06/18 10:04

题目:

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.


思路:

采用BFS算法,利用queue来实现


代码实现:

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int findBottomLeftValue(TreeNode* root) {        queue<TreeNode*> que;      queue<int> lv;      que.push(root);       lv.push(0);int c = 0;while(que.size()) {TreeNode* p = que.front();int l = lv.front();       que.pop();       lv.pop();       if(p->left) {       que.push(p->left);       lv.push(l+1);       }              if(p->right) {       que.push(p->right);       lv.push(l+1);       }              if(l>c) {       c = l;       root = p;       }}return root->val;    }};


0 0