BM23 二叉树前序遍历
题目
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
示例 1:
示例1
输入:{1,#,2,3}
返回值:[1,2,3]
解题思路
1.确定递归方式:前序遍历,即根-->左子树-->右子树
2.确定递归结束条件:遍历到空节点
3.将遍历的节点存入列表中
题解
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @return int整型一维数组
#
class Solution:
def circulate(self, list, root):
# 2.确定递归结束条件:遍历到空节点
if root == None:
return
# 1.确定递归方式:前序遍历,即根-->左子树-->右子树
list.append(root.val)
self.circulate(list, root.left)
self.circulate(list, root.right)
def circulateTraversal(self , root: TreeNode) -> List[int]:
# 3.将遍历的节点存入列表中
list = []
self.circulate(list, root)
return list
BM24 二叉树中序遍历
与前序遍历同理,中序遍历:即左子树-->根-->右子树
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @return int整型一维数组
#
class Solution:
def circulate(self,list,root):
# 2.确定递归结束条件:遍历到空节点
if root == None:
return
# 1.确定递归方式:中序遍历,即左子树-->根-->右子树
self.circulate(list, root.left)
list.append(root.val)
self.circulate(list, root.right)
def inorderTraversal(self, root: TreeNode) -> List[int]:
# 3.将遍历的节点存入列表中
list = []
self.circulate(list, root)
return list
BM25 二叉树后序遍历
与前序遍历同理,后序遍历:即左子树-->右子树-->根
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @return int整型一维数组
#
class Solution:
def circulate(self, list, root):
# 2.确定递归结束条件:遍历到空节点
if root == None:
return
# 1.确定递归方式:后序遍历,即左子树-->右子树-->根
self.circulate(list, root.left)
self.circulate(list, root.right)
list.append(root.val)
def postorderTraversal(self, root: TreeNode) -> List[int]:
# 3.将遍历的节点存入列表中
list = []
self.circulate(list, root)
return list