LeetCode

来源:互联网 发布:linux mint wine qq 编辑:程序博客网 时间:2024/05/06 09:19


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.


找到最底层最左边的叶子节点。

利用队列,时间复杂度O(n),空间复杂度O(n)

/** * 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*> q;        q.push(root);        int ans = 0;        while (!q.empty()) {            TreeNode* cur = q.front();            if (cur->right) q.push(cur->right);            if (cur->left) q.push(cur->left);            q.pop();            if (q.empty()) ans = cur->val;        }        return ans;    }};