首页 > 代码库 > leetcode 513. Find Bottom Left Tree Value

leetcode 513. Find Bottom Left Tree Value

Given a binary tree, find the leftmost value in the last row of the tree.

Example 1:

Input:    2   /   1   3Output:1

 

Example 2: 

Input:        1       /       2   3     /   /     4   5   6       /      7Output:7

 

Note: You may assume the tree (i.e., the given root node) is not NULL.

分析:广搜,层序遍历,保存每层的第一个值,最后的即为所求值。

 1 /** 2  * Definition for a binary tree node. 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10 class Solution {11 public:12     int findBottomLeftValue(TreeNode* root) {13         int result = root->val;14         queue<TreeNode *> q;15         q.push(root);16         TreeNode* temp;17         while (!q.empty()) {18             int size = q.size();19             result = q.front()->val;20             while (size--) {21                 temp = q.front();22                 q.pop();23                 if (temp->left != NULL) q.push(temp->left);24                 if (temp->right != NULL) q.push(temp->right);25             }26         }27         return result;28     }29 };

 

leetcode 513. Find Bottom Left Tree Value