给定一个二叉树,返回它的 后序 遍历。
示例:
输入: [1,null,2,3]
1
\
2
/
3
输出: [3,2,1]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?
思路
后序遍历是左-右-根,先序遍历为根-左-右,可以将先序遍历代码的遍历方式改为根-右-左,再将结果倒过来
代码
def postorderTraversal(self, root: TreeNode) -> List[int]:
l=[]
stack=[]
if root==None:return []
stack.append(root)
while stack!=[]:
N=stack.pop()
l.append(N.val)
if N.left!=None:stack.append(N.left)
if N.right!=None:stack.append(N.right)
return l[::-1]