# 本代码包括建树过程
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
# 建树
def creatTree(data, index):
pNode = None
if index < len(data):
if data[index] == '#':
return
pNode = TreeNode(data[index])
pNode.left = creatTree(data, 2 * index + 1)
pNode.right = creatTree(data, 2 * index + 2)
return pNode
# 后序遍历
def postOrder(root):
if not root:
return []
p = root
stack, res = [root, ], []
while stack:
root = stack.pop()
res.append(root.val)
if root.left:
stack.append(root.left)
if root.right:
stack.append(root.right)
return res[::-1]
data = [s for s in input().split(' ')]
root = creatTree(data, 0)
print(postOrder(root))
二叉树的非递归后序遍历(python)附带建树过程
最新推荐文章于 2023-04-10 17:30:00 发布