二叉树的前序遍历-力扣
二叉树的中序遍历-力扣
二叉树的后序遍历-力扣
单层递归的逻辑:中左右
终止条件:if cur==None:return
递归需要的参数和返回值:root结点,存结果的数组res
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
#异常处理
if root==None:
return []
res=[]
self.traversal(root,res)
return res
def traversal(self,root,res):
if root==None:
return;
res.append(root.val)
self.traversal(root.left,res)
self.traversal(root.right,res)
单层递归的逻辑:左中右
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
if root==None:
return []
res=[]
self.traversal(root,res)
return res
def traversal(self,root,res):
#终止条件
if root==None:
return
#左中右
self.traversal(root.left,res)
res.append(root.val)
self.traversal(root.right,res)
单层逻辑:左右中
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
if root==None:
return []
res=[]
self.traversal(root,res)
return res
def traversal(self,root,res):
if root==None:
return
#左右中
self.traversal(root.left,res)
self.traversal(root.right,res)
res.append(root.val)