1 题目描述 2 解题思路 方法:递归 反转二叉树的意思就是将树的左右子树进行反转,这是一个重复的 过程,所以很简单的就会联想到递归解法。 这个地方的反转其实就是指的交换, 所以就是常规的交换写法➕递归方法 3 解决代码 方法:递归 《Java代码》 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public TreeNode invertTree(TreeNode root) { if(root == null){ return root; } TreeNode tmp = root.right; root.right = root.left; root.left = tmp; root.left = invertTree(root.left); root.right = invertTree(root.right); return root; } } 方法:递归 《python3代码》 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def invertTree(self, root: TreeNode) -> TreeNode: if not root: return root root.right, root.left = root.left, root.right root.left = self.invertTree(root.left) root.right = self.invertTree(root.right) return root