二叉樹的遍歷是在面試中比較常見的題目卷玉,下面做下梳理
三種遍歷都遵循先左節(jié)點后右節(jié)點的原則,只是根據根節(jié)點出現的位置來區(qū)分车柠。
1,先序遍歷
先訪問根節(jié)點塑猖,再訪問左子樹和右子樹堪遂, 左子樹和右子樹訪問的順序也按照此原則,直到結束
參考代碼
# 先序打印二叉樹(遞歸)
def preOrderTraverse(node):
? ? if node is None:
? ? ? ? return None
? ? print(node.val)
? ? preOrderTraverse(node.left)
? ? preOrderTraverse(node.right)
2萌庆,中序遍歷
先訪問左子樹溶褪,再訪問根節(jié)點和右子樹,?左子樹和右子樹訪問的順序也按照此原則践险,直到結束
參考代碼
# 中序打印二叉樹(遞歸)
def inOrderTraverse(node):
? ? if node is None:
? ? ? ? return None
? ? inOrderTraverse(node.left)
? ? print(node.val)
? ? inOrderTraverse(node.right)
3猿妈,后序遍歷
先訪問左子樹和右子樹吹菱,,再訪問根節(jié)點彭则,?左子樹和右子樹訪問的順序也按照此原則鳍刷,直到結束
參考代碼
# 后序打印二叉樹(遞歸)
def postOrderTraverse(node):
? ? if nodeis None:
? ? ? ? return None
? ? postOrderTraverse(node.left)
? ? postOrderTraverse(node.right)
? ? print(node.value)
以上就是二叉樹的遞歸遍歷的Python實現。
加qq群獲取源碼:994625692(可以聊天聊地的那種)