当前位置:网站首页>513. Find Bottom Left Tree Value

513. Find Bottom Left Tree Value

2022-06-23 15:54:00 SUNNY_ CHANGQI

The description of the porblem

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

 source : Power button (LeetCode)
 link :https://leetcode.cn/problems/find-bottom-left-tree-value

an example

 Insert picture description here

The intuition for this

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.

The codes

#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;
}

The corresponding results

Starting program: /mnt/c/Users/sunny/Desktop/practices for cmake/test
The res:1[Inferior 1 (process 1143) exited normally]
原网站

版权声明
本文为[SUNNY_ CHANGQI]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/174/202206231522137266.html