首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
二叉树的后序遍历
[编程题]二叉树的后序遍历
热度指数:68899
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32M,其他语言64M
算法知识视频讲解
用递归的方法对给定的二叉树进行后序遍历。
例如:
给定的二叉树为
{1,#,2,3},
返回
[3,2,1].
示例1
输入
{1,#,2,3}
输出
[3,2,1]
说明:本题目包含复杂数据结构TreeNode,
点此查看相关信息
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(22)
邀请回答
收藏(251)
分享
提交结果有问题?
231个回答
15篇题解
开通博客
sdhsih
发表于 2020-04-22 20:28:09
如果是前序遍历,我们的顺序是根节点,左节点,右节点。如果我们用一个栈来实现,可以这样考虑:先把根节点压入栈,在栈中有元素的时候循环:每次弹出栈顶元素,然后先压入栈顶元素的右边节点,再压入栈顶元素的左边节点。因为栈是先进后出,因此要先压入右边的节点,因此第二次执行while循环的时候,栈顶元素就是左节
展开全文
_offer_qwq
发表于 2020-01-08 15:13:28
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x),
展开全文
牛客697564601号
发表于 2020-10-13 11:54:56
我就乖乖递归了 vector<int> postorderTraversal(TreeNode* root) { // write code here static vector<int> res; if(!root)r
展开全文
一叶浮尘
发表于 2020-04-02 22:38:20
求给定的二叉树的后序遍历。例如:给定的二叉树为{1,#,2,3},用非递归的方法实现二叉树的后续遍历。之所以能用递归是因为具有栈的属性,因此在非递归的做法中往往要活用栈和队列这个数据结构。 优秀了,其实就是这么简单。用一个栈保存待加入result的节点,用另外一个栈保存当前节点访问的状态值,根据不同
展开全文
恒成立
发表于 2021-03-27 20:34:46
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Sol
展开全文
GreyPigeon
发表于 2021-11-03 16:06:45
* struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class Solution { public: /** * * @param
展开全文
ywl0211
发表于 2021-10-25 17:10:43
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param root TreeN
展开全文
jing_zhong
发表于 2021-08-31 23:14:37
题目描述:用递归的方法对给定的二叉树进行后序遍历。例如:给定的二叉树为{1,#,2,3},返回[3,2,1].示例1: 输入:{1,#,2,3} &
展开全文
奶味拳师
发表于 2021-09-01 01:02:49
使用全局静态list存储数据。按照左右中向list中添加数字。 ArrayList<Integer> list = new ArrayList<Integer>(); public ArrayList<Integer> postorderTraversal
展开全文
牛客808484225号
发表于 2022-08-08 09:49:03
/* 这个解法可能是最佳实践,思路清晰,易于理解。 * 核心思想是用栈做辅助空间,先从根往左一直入栈,直到为空,然后判断栈顶元素的右孩子,如果不为空且未被访问过, * 则从它开始重复左孩子入栈的过程;否则说明此时栈顶为要访问的节点(因为左右孩子都是要么为空要么已访问过了),
展开全文
问题信息
树
难度:
231条回答
251收藏
31149浏览
热门推荐
通过挑战的用户
查看代码
Hyperio...
2022-12-28 13:55:21
Code__Cat
2022-09-16 18:51:18
=120191...
2022-09-14 00:41:45
牛客25253...
2022-09-13 18:50:30
牛客21260...
2022-09-13 17:46:13
相关试题
明明的随机数
数组
评论
(3898)
来自
华为研发工程师编程题
进制转换
字符串
评论
(2541)
来自
华为研发工程师编程题
密码验证合格程序
数组
字符串
模拟
评论
(1414)
编译方法中,动态存储分配的含义是:()
编译和体系结构
评论
(2)
来自
乐视2017秋招开发工程...
闪速存储器能提供高性能、低功耗、字...
编程基础
评论
(1)
二叉树的后序遍历
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Solution { /** * * @param root TreeNode类 * @return int整型ArrayList */ public ArrayList
postorderTraversal (TreeNode root) { // write code here } }
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class Solution { public: /** * * @param root TreeNode类 * @return int整型vector */ vector
postorderTraversal(TreeNode* root) { // write code here } };
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param root TreeNode类 # @return int整型一维数组 # class Solution: def postorderTraversal(self , root ): # write code here
/* * function TreeNode(x) { * this.val = x; * this.left = null; * this.right = null; * } */ /** * * @param root TreeNode类 * @return int整型一维数组 */ function postorderTraversal( root ) { // write code here } module.exports = { postorderTraversal : postorderTraversal };
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param root TreeNode类 # @return int整型一维数组 # class Solution: def postorderTraversal(self , root ): # write code here
package main import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * * @param root TreeNode类 * @return int整型一维数组 */ func postorderTraversal( root *TreeNode ) []int { // write code here }
{1,#,2,3}
[3,2,1]