二叉树遍历
- 前序遍历pre-order
- 中序遍历in-order
- 后序遍历post-order
实际使用中用得很少?深度和广度优先用得多,这是要说一下顺序,自己去理解
前序遍历
根-左-右 : ABDECFG
中序遍历
左-根-右 DBEAFCG
后序遍历
左-右-根 DEBFGCA
重 点 : 如 果 是 二 叉 搜 索 树 , 那 么 中 序 遍 历 出 来 的 是 有 序 的 数 组 \color{red}{重点:如果是二叉搜索树,那么中序遍历出来的是有序的数组} 重点:如果是二叉搜索树,那么中序遍历出来的是有序的数组
实现代码:递归~
def preorder(self,root):
if root:
self.traverse_path.append(root.val)
self.preorder(root.left)
self.preorder(root.right)
def inorder(self,root):
if root:
self.inorder(root.left)
self.traverse_path.append(root.val)
self.inorder(root.right)
def postorder(self,root):
if root:
self.postorder(root.left)
self.postorder(root.right)
self.traverse_path.append(root.val)