代码随想录 二叉树—二叉树的层序遍历Ⅱ

**思路:**就是在上一个题的基础上将result最后翻转了一下,这样就可以实现自下而上的层序遍历。

**知识点:**stack和queue,也就是栈和队列,是push;

栈stack:push(),pop(),top(),empty(),size()

队列queue:push(),pop(),front(),back(),empty(),size()

vector容器:push_back(),pop_back(),empty(),erase(),clear()

list:push_front(),push_back(),pop_front(),pop_back()

题解c++:

cpp 复制代码
/**
 * Definition for a binary tree node.
 * 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:
    vector<vector<int>> levelOrderBottom(TreeNode* root) {
        queue<TreeNode*> que;
        if(root!=NULL) que.push(root);
        vector<vector<int>> result;
        while(!que.empty())
        {
            int size=que.size();
            vector<int> vec;
            for(int i=0;i<size;i++)
            {
                TreeNode* node=que.front();
                que.pop();
                vec.push_back(node->val);
                if(node->left) que.push(node->left);
                if(node->right) que.push(node->right);
            }
            result.push_back(vec);
        }
        reverse(result.begin(),result.end());
        return result;

    }
};
相关推荐
冻柠檬飞冰走茶2 分钟前
PTA基础编程题目集 7-8超速判断(C++语言实现)
开发语言·数据结构·c++·算法
玖玥拾34 分钟前
LeetCode 88 合并两个有序数组
算法·leetcode
数据皮皮侠AI1 小时前
上市公司数字供应链金融指数(2010-2024)
大数据·人工智能·算法
Hi李耶2 小时前
【LeetCode】541.反转字符串 II
算法·leetcode·职场和发展
shylyly_2 小时前
104.二叉树的最大深度
数据结构·算法·104.二叉树的最大深度
AI科技星2 小时前
曲率‑挠率与 $\boldsymbol{\omega/c}$ 的关系、精算验证及其物理意义
c语言·开发语言·线性代数·算法·决策树·机器学习·ai科技星
沐籽李3 小时前
HuDiff在抗体人源化项目中的工程化落地
人工智能·算法·aidd·抗体设计
依然范特东3 小时前
强化学习笔记6--IS、PPO、TD、DQN、Actor-Critic
笔记·算法
一次旅行5 小时前
RLHF全链路深度解析:Reward Model数学推导+PPO完整实战,对比GRPO轻量化方案
人工智能·算法·机器学习
Wang's Blog5 小时前
AI Agent白手起家29: Few Shot 提示词工程实战
人工智能·算法