前言
此文主要内容是我很久以前在Typora上做的笔记,现在免费版的Typora没了,所以就把笔记内容转移到这边,同时也是方便自己日后回顾学习和进一步改进。
树的遍历方式
树的遍历方式有四种,先序遍历,中序遍历,后序遍历以及层次遍历。其中只需要中序遍历和其他任意一种遍历方式,就能确定一颗树。除了中序遍历的方式,其他方式只能确定根结点的位置,还需要中序遍历区分左右子树。除了层次遍历,其他方式只需要借助递归方法就能实现。
下面以这张图为例:
先序遍历
先序遍历指的就是优先输出根节点,然后再输出左节点,最后输出右节点。主要代码如下:
def Search(root): # python
if root == None:
return
print(root.val,end = " ")
Search(root.left)
Search(root.right) # 输出结果为 10 7 3 8 9 11 12
中序遍历
中序遍历需要先输出左节点,然后输出根结点,最后输出右节点。所以根据它的输出序列可以划分左右子树节点。
def Search(root):
if root == None:
return
Search(root.left)
print(root.val,end = " ")
Search(root.right) # 3 7 8 9 10 11 12
后序遍历
后序遍历需要先输出左节点,然后输出右节点,最后输出根节点。
def Search(root):
if<