【关关的刷题日记56】Leetcode 107 Binary Tree Level Order Traversal II

时间:2022-05-08
本文章向大家介绍【关关的刷题日记56】Leetcode 107 Binary Tree Level Order Traversal II,主要内容包括题目、思路、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

关关的刷题日记56 – Leetcode 107 Binary Tree Level Order Traversal II

题目

题目的意思是让我们按照二叉树每一层的顺序来从叶子节点到根节点、从左到右遍历二叉树。

思路

思路:采用宽度优先搜索,从上到下,从左到右遍历二叉树,最后再将数组反转即可。

class Solution {public:
    vector<vector<int>> levelOrderBottom(TreeNode* root) {
        vector<vector<int> >store;
        if(root==nullptr)
            return store;
        vector<TreeNode*>bfs;
        bfs.push_back(root);      
        int n=1, count=0;
        while(!bfs.empty())
        {
            vector<int>re;
            for(int i=0; i<n; i++)
            {
                TreeNode *temp=bfs[0];
                bfs.erase(bfs.begin());
                re.push_back(temp->val);
                if(temp->left)
                {
                    bfs.push_back(temp->left);
                    count++;    
                }
                if(temp->right)
                {
                    bfs.push_back(temp->right);
                    count++;
                }
            }
                store.push_back(re);
                n=count;
                count=0;    
        }
        for(int i=0; i<store.size()/2; i++)
        {
            swap(store[i], store[store.size()-1-i]);
        }
        return store;
    }};

人生易老,唯有陪伴最长情,加油!

以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。