n, x, y = map(int, input().strip().split())
a = list(map(int, input().strip().split()))
理论知识
存储方式
- 顺序存储
- 链式存储
链式存储代码:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
遍历方式
- 深度优先遍历
- 前序遍历
中-左-右
- 中序遍历
左-中-右
- 后序遍历
左-右-中
- 前序遍历
- 广度优先遍历
- 层序遍历
二叉树前序遍历-递归 144
class Solution:
def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
res=[]
def traversal(root:TreeNode):
if root ==None:
return
res.append(root.val)
traversal(root.left)
traversal(root.right)
traversal(root)
return res
二叉树中序遍历-递归 94
class Solution:
def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
res=[]
def traversal(root:TreeNode):
if root == None:
return
traversal(root.left)
res.append(root.val)
traversal(root.right)
traversal(root)
return res
二叉树后序遍历-递归 145
class Solution:
def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
res=[]
def traversal(root:TreeNode):
if root ==None:
return
traversal(root.left)
traversal(root.right)
res.append(root.val)
traversal(root)
return res
二叉树前序遍历-迭代 144
分析:用栈
- 入栈顺序:右 左 前
- 出栈顺序:前 左 右