[leetcode] 145. 二叉树的后序遍历

网友投稿 293 2022-08-25

[leetcode] 145. 二叉树的后序遍历

Description

给定一个二叉树,返回它的 后序 遍历。

示例:

Example 1:

输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]

进阶: 递归算法很简单,你可以通过迭代算法完成吗?

分析

题目的意思是:实现二叉树的后续遍历,没什么说的,需要用到栈,首先把根节点加入到栈,然后遍历栈,拓展左右子节点,然后不断的取出值进行拓展。最后输出的结果是output的逆序。从上到下,从右到左,逆序就是从左到右,从下到上,刚好是后序遍历

代码

# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def postorderTraversal(self, root: TreeNode) -> List[int]: if(root is None): return [] output=[] stack=[root] while(stack): node=stack.pop() output.append(node.val) if(node.left is not None): stack.append(node.left) if(node.right is not None): stack.append(node.right) output.reverse() return output

参考文献

​​[LeetCode] 二叉树的后序遍历​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[leetcode] 1351. Count Negative Numbers in a Sorted Matrix
下一篇:[leetcode] 160. 相交链表
相关文章

 发表评论

暂时没有评论,来抢沙发吧~