先搞懂二叉树的中序遍历,也就是正常的递归。循序渐进得出二叉树的前中后遍历。
# 二叉树的中序遍历
class Solution:
def threeOrders(self , root ):
in_order = []
def dfs(root):
if root == None:
return None
dfs(root.left) # 左
in_order.append(root.val) # 根
dfs(root.right) # 右
dfs(root)
return in_order
class Solution:
def threeOrders(self , root ):
pre_order, in_order, post_order = [], [], []
def dfs(root):
if root == None:
return None
pre_order.append(root.val) # 根
dfs(root.left) # 左 # 左 # 左
in_order.append(root.val) # 根
dfs(root.right) # 右 # 右 # 右
post_order.append(root.val) # 根
dfs(root)
return [pre_order, in_order, post_order]
我的牛客讲解链接:
链接:https://www.nowcoder.com/questionTerminal/a9fec6c46a684ad5a3abd4e365a9d362?toCommentId=7510561
来源:牛客网