一、二叉树的层序遍历
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def levelOrder(self, root: TreeNode) -> list[list[int]]:
# 定义一个数组,作为队列
queue = []
# 定义一个结果数组
result = []
if not root:
return []
# 队列中加入根节点
queue.append(root)
# 当队列不为空时,执行循环体
while queue:
# 记录队列的长度:本层的元素(节点)个数
size = len(queue)
# 定义存储每一层元素的数组
temp = []
# 当本层队列长度不为零是时,执行内部循环
while size:
#弹出队列头部节点
node = queue.pop(0)
#进入本层数组
temp.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
size -= 1
result.append(temp)
二、翻转二叉树
1.递归方法
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def invertTree(self, root: TreeNode) -> TreeNode:
if not root:
return root
root.left, root.right = root.right, root.left
self.invertTree(root.left)
self.invertTree(root.right)
return root