1. 题目:
给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
示例 1:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
示例 2:
输入:root = [2,1,3]
输出:[2,3,1]
示例 3:
输入:root = []
输出:[]
2. 我的代码:
# 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 invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]: # 递归 def invert(node): # 前序遍历(只不过对中节点无任何操作) # 终止条件 if node == None: return node # 翻转 temp = invert(node.left) node.left = invert(node.right) node.right = temp return node invert(root) return root
利用前序遍历,可以按照:中左右顺序来,这样就可以依次让左和右子树进行交换。当然这里其实对中节点没有任何操作。
递归函数,首先确定终止条件:空节点时结束;然后翻转二叉树:需要一个零时变量temp作为交换的介质。翻转后返回该节点引用即可。