Python全系列 教程
3567个小节阅读:5931.5k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
若二叉树非空,则依次执行如下操作:
xxxxxxxxxx
class Solution:
def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
# 后序遍历的顺序:左 右 根
def postorder(root : TreeNode):
if not root:
return
postorder(root.left)
postorder(root.right)
res.append(root.val)
res = []
postorder(root)
return res
建立一个栈,用来存储节点。
根据根右左的顺序将节点依次压入栈中,在压入栈中的同时,按照顺序把节点里的元素依次压入栈中。输出完毕之后按照顺序弹栈。
将答案数组进行反转,得到左右根顺序的数组
输出答案
期望结果:[9,5,7,4,3]
xxxxxxxxxx
class Solution:
def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
res = []
stack = []
while root or stack:
while root:
res.append(root.val)
stack.append(root)
root = root.right
root = stack.pop().left #根 右 左的顺序
res.reverse()
return res