- 先序,中序,后序遍历
先序:先根,后左子树,后右子树
中序:先左子树,后根,后右子树
后序:先左子树,后右子树,后根
递归代码实现:
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
# def preorderTraversal(self, root):
def inorderTraversal(self, root):
# def postorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
# res1作为全局变量传到函数里,在执行过程中发生变化
res1 = []
self. recursive_anyorder (root, res1)
print(res1)
return res1
def recursive_anyorder(self, root, res):#递归遍历
if root:
# 先序
# res.append(root.val)
self.recursive_anyorder(root.left, res)
# 中序
# res.append(root.val)
self.recursive_anyorder(root.right, res)
# 后序
# res.append(root.val)
if __name__ == '__main__':
S = Solution()
l1 = TreeNode(1)
l2 = TreeNode(2)
l3 = TreeNode(3)
l4 = TreeNode(4)
l5 = TreeNode(5)
l6 = TreeNode(6)
l7 = TreeNode(7)
root = l1
l1.left = l2
l1.right = l3
l2.left = l4
l2.right = l5
l3.left = l6
l3.right = l7
x = S.inorderTraversal(root)