17 前中后序遍历

优质
小牛编辑
132浏览
2023-12-01

深度遍历改变顺序就OK了


#coding:utf-8
#二叉树的遍历
#简单的二叉树节点类
class Node(object):
  def __init__(self,value,left,right):
    self.value = value
    self.left = left
    self.right = right

#中序遍历:遍历左子树,访问当前节点,遍历右子树

def mid_travelsal(root):
  if root.left is not None:
    mid_travelsal(root.left)
  #访问当前节点
  print(root.value)
  if root.right is not None:
    mid_travelsal(root.right)

#前序遍历:访问当前节点,遍历左子树,遍历右子树

def pre_travelsal(root):
  print (root.value)
  if root.left is not None:
    pre_travelsal(root.left)
  if root.right is not None:
    pre_travelsal(root.right)

#后续遍历:遍历左子树,遍历右子树,访问当前节点

def post_trvelsal(root):
  if root.left is not None:
    post_trvelsal(root.left)
  if root.right is not None:
    post_trvelsal(root.right)
  print (root.value)