码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • LeetCode-145. Binary Tree Postorder Traversal [C++][Java]


    LeetCode-145. Binary Tree Postorder TraversalLevel up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.https://leetcode.com/problems/binary-tree-postorder-traversal/

    Given the root of a binary tree, return the postorder traversal of its nodes' values.

    Example 1:

    Input: root = [1,null,2,3]
    Output: [3,2,1]
    

    Example 2:

    Input: root = []
    Output: []
    

    Example 3:

    Input: root = [1]
    Output: [1]
    

    Constraints:

    • The number of the nodes in the tree is in the range [0, 100].
    • -100 <= Node.val <= 100

    Follow up: Recursive solution is trivial, could you do it iteratively?

    【C++】

    1. /**
    2. * Definition for a binary tree node.
    3. * struct TreeNode {
    4. * int val;
    5. * TreeNode *left;
    6. * TreeNode *right;
    7. * TreeNode() : val(0), left(nullptr), right(nullptr) {}
    8. * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    9. * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
    10. * };
    11. */

    1. 双栈

    1. class Solution {
    2. public:
    3. vector<int> postorderTraversal(TreeNode* root) {
    4. vector<int> postorder;
    5. if (root == nullptr) {return postorder;}
    6. stack st1, st2;
    7. st1.push(root);
    8. while (!st1.empty()){
    9. root = st1.top();
    10. st1.pop();
    11. st2.push(root);
    12. if (root->left != nullptr) {st1.push(root->left);}
    13. if (root->right != nullptr) {st1.push(root->right);}
    14. }
    15. while (!st2.empty()){
    16. postorder.push_back(st2.top()->val);
    17. st2.pop();
    18. }
    19. return postorder;
    20. }
    21. };

    2. 单栈反序 

    1. class Solution {
    2. public:
    3. vector<int> postorderTraversal(TreeNode* root) {
    4. vector<int> res;
    5. if(!root) return res;
    6. stack st;
    7. st.push(root);
    8. while(!st.empty()) {
    9. TreeNode* temp = st.top(); st.pop();
    10. if(temp->left) st.push(temp->left);
    11. if(temp->right) st.push(temp->right);
    12. res.push_back(temp->val);
    13. }
    14. reverse(res.begin(),res.end());
    15. return res;
    16. }
    17. };

    【Java】

    1. /**
    2. * Definition for a binary tree node.
    3. * public class TreeNode {
    4. * int val;
    5. * TreeNode left;
    6. * TreeNode right;
    7. * TreeNode() {}
    8. * TreeNode(int val) { this.val = val; }
    9. * TreeNode(int val, TreeNode left, TreeNode right) {
    10. * this.val = val;
    11. * this.left = left;
    12. * this.right = right;
    13. * }
    14. * }
    15. */

    1. 双栈

    1. class Solution {
    2. public List postorderTraversal(TreeNode root) {
    3. List postorder = new ArrayList<>();
    4. if (root == null) {return postorder;}
    5. Stack st1 = new Stack<>();
    6. Stack st2 = new Stack<>();
    7. st1.push(root);
    8. while (!st1.isEmpty()){
    9. root = st1.pop();
    10. st2.push(root);
    11. if (root.left != null) {st1.push(root.left);}
    12. if (root.right != null) {st1.push(root.right);}
    13. }
    14. while (!st2.isEmpty()){
    15. postorder.add(st2.pop().val);
    16. }
    17. return postorder;
    18. }
    19. }

  • 相关阅读:
    Node.Js基础知识
    2023 IDC中国数字金融论坛丨中电金信向行业分享“源启+应用重构”新范式
    怎么裁剪视频时长?建议收藏这些方法
    【示例】如何使用Pytorch堆叠一个神经网络
    Houdini 地形知识点
    Linux用户管理常用命令及对应配置文件
    陈艾盐:《春燕》百集访谈节目第六十三集
    卤味江湖混战:紫燕、德州扒鸡IPO,卤味下半场跳出“鸭圈“
    期末测试——H5方式练习题
    Promise的基本用法,基于Promise处理ajax请求
  • 原文地址:https://blog.csdn.net/qq_15711195/article/details/126339439
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号