前序遍历
遍历顺序:中→左→右
# 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: TreeNode) -> List[int]:
def preorder(root: TreeNode):
if root:
res.append(root.val)
preorder(root.left)
preorder(root.right)
res = []
preorder(root)
return 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: TreeNode) -> List[int]:
def preorder(root: TreeNode):
if root:
preorder(root.left)
res.append(root.val)
preorder(root.right)
res = []
preorder(root)
return 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: TreeNode) -> List[int]:
def preorder(root: TreeNode):
if root:
preorder(root.left)
preorder(root.right)
res.append(root.val)
res = []
preorder(root)
return res