二叉树的遍历
前言
本来觉得对这个已经挺熟悉啦,就没有单独开一章记录,没想到几个月没刷题,连这个写的都很生疏,因此在这里整理记录一下,以便之后复习。
二叉树的前中后层序遍历
前中后遍历
都是一个模板
def dfs(root):
if not root: return None
#前
dfs(root.left)
#中
dfs(root.right)
#后
print(root.val)
层序遍历
层序遍历需要使用到队列,对应会有很多变化
def bfs(root):
if not root: return []
res, queue = [], []
queue.append(root)
while queue:
node = queue.pop(0)
res.append(node.val)
if node.left: queue.append(node.left)
if node.right: queue.append(node.right)
return res
所有二叉树遍历到题目都是基于此基础扩展变化而来