先序遍历:根节点排最先,然后统计,先左后右–>ABC
中序遍历:先做后根,最后右—>BAC
后续遍历:先左后根最后右–>BAC
#定义一个树节点
class TreeNode:
def __init__(self,value=None,left=None,right=None):
self.value = value
self.left = left
self.right = right
实例化一个树节点
nodel = TreeNode("A",
TreeNode("B",TreeNode("D"),TreeNode("E")),
TreeNode("C",TreeNode("F"),TreeNode("G"))
)
前序遍历
def preTraverse(root):
if root is None:
return
print(root.value)
preTraverse(root.left)
preTraverse(root.right)
中序遍历
def midTraverse(root):
if root is None:
return
midTraverse(root.left)
print(root.value)
midTraverse(root.right)
后续遍历
def afterTraverse(root):
if root is None:
return
afterTraverse(root.right)
afterTraverse(root.left)
print(root.value)
if __name__ == '__main__':
preTraverse(nodel)
midTraverse(nodel)
afterTraverse(nodel)