二叉树的后序遍历—leetcode145
给定一个二叉树,返回它的 后序 遍历。
示例:
输入: [1,null,2,3] 1\2/3 输出: [3,2,1]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?
方法一:递归法
/*** 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<int> postorderTraversal(TreeNode* root) {vector<int> res;if(root==nullptr){return res;}core(root,res);return res;}void core(TreeNode* root,vector<int>& res){if(root==nullptr)return;core(root->left,res);core(root->right,res);res.push_back(root->val);}
};
方法二:迭代法
/*** 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<int> postorderTraversal(TreeNode* root) {vector<int> res;if(root==nullptr){return res;}stack<TreeNode*> vec;vec.push(root);while(!vec.empty()){TreeNode* top = vec.top();vec.pop();if(top->left!=nullptr)vec.push(top->left);if(top->right!=nullptr)vec.push(top->right);res.push_back(top->val);}reverse(res.begin(),res.end());return res;}
};
二叉树的后序遍历—leetcode145相关推荐
- LeetCode-145:二叉树的后序遍历
题目描述: 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 思路分析: 递归法: ...
- 刻意练习:LeetCode实战 -- 二叉树的后序遍历
背景 今天,第二期基础算法(Leetcode)刻意练习训练营 的打卡任务是二叉树的中序遍历,由于二叉树的遍历方式通常来说有四种:前序遍历.中序遍历.后序遍历以及层次遍历,而LeetCode也有二叉树的 ...
- [LeetCode] Binary Tree Postorder Traversal 二叉树的后序遍历
Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary ...
- 二叉树后序遍历_LeetCode算法145. 二叉树的后序遍历
leetcode LeetCode算法-145. 二叉树的后序遍历 145. 二叉树的后序遍历 题目 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / ...
- 【7-10 PAT】树的遍历(给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。)
题干: 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 解题报告: dfs求出这棵树来,然后bfs求层序遍历就行了. AC代码: #include&l ...
- PTA L2-006 树的遍历-二叉树的后序遍历+中序遍历,输出层序遍历 团体程序设计天梯赛-练习集...
L2-006 树的遍历 (25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤),是二叉树中结点的个 ...
- Leetcode: 二叉树的后序遍历
Leetcode: 二叉树的后序遍历 后遍历的流程:一直往下走,把路口记下来,假如路口有馒头,我们是不吃的,因为要先吃最后的,中间的岔路如果有岔路,就把右边的岔路记下来,但是因为右边没有走过,所以访问 ...
- 二叉树的后序遍历(递归和非递归)
二叉树的后序遍历 后序遍历(LRD)是二叉树遍历的一种,也叫做后根遍历.后序周游,记为左右根,简记:左右根. 步骤(非递归): ⼆叉树的后序遍历顺序是左-右-根.在这里仍然采用棧来进行辅助,具体步骤如 ...
- 详解二叉树的后序遍历
后序遍历:首先遍历左子树,然后遍历右子树,最后访问根节点(左->右->根) 后序遍历的递归算法 思路: 遍历左子树 遍历右子树 访问根节点 代码如下: //二叉树的后序遍历(递归) voi ...
最新文章
- 如何做一个听话的 “输入框”
- nginx反向代理相关 负载均衡及优化
- css flexbox模型_Flexbox和CSS Grid之间的主要区别
- 了解.Net Remoting从基础开始
- java for(o t :object) 获取顺序号_JAVA泛型通配符T,E,K,V区别 瞬间豁然开朗
- 小米12 Ultra将搭载5倍潜望镜头:自研技术加持 成像相对更好
- vsftpd增加用户 linux,linux下开通vsftpd 添加新ftp用户
- IO流之流的操作规律
- PS破解版全网下架?这款国产工具可完美替代
- VmPlayer上设置主机和windows虚拟机文件夹共享
- 世界500强面试题 - 头脑
- C语言阿拉伯数字转大写汉字,将阿拉伯数字转大写汉字程序的类
- OC 如何读取plist文件
- python如何手动编写开根号的算法_手动开根号方法
- java网课|Scanner
- SQL高级——PLSQL数据库编程
- [转载] 晓说——第5期:张学良观虎斗旧电报还原军阀“宫心计”
- Tuxera ntfs读写插件工具v2022版本 支持macOS15系统
- [BZOJ1787][Ahoi2008]Meet 紧急集合
- shell脚本练习2023年下岗版
热门文章
- Java黑皮书课后题第2章:*2.20(金融应用:计算利息)编写程序,读取余额和年利率百分比,打印下个月的利息
- c语言学习之用筛选法求100之内的素数。
- mysql报196271错误_微软补丁造成MYSQL及Windows经常连接失败解决方法
- Python第三方模块tesserocr安装
- 结对编程Wordcount
- jQuery选择器大全(48个代码片段+21幅图演示)
- (FFOS Gaia) Telemetry - AUM分析
- Inna and Binary Logic
- SQL求解两个时间差
- 关于 【通过代理访问】 的研究,【突破 IP ,“无限制”投票】