二叉树问题,首先考虑递归。 对本题来说,该方法的输入、处理流程和输出分别为: 输入: 需要处理的根节点 处理流程: 交换根节点的左右节点,并让左右节点递归执行方法,继续交换左右节点的子节点 输出: 处理完成的根节点
class Solution {
public TreeNode invertTree(TreeNode root) {
// 递归的终止条件 root为空
if (root == null) return null;
// 交换根节点的左右节点
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
// 让左右节点作为递归的根节点,继续递归执行,让根节点的子节点也完成左右交换
root.left = invertTree(root.left);
root.right = invertTree(root.right);
// 返回根节点
return root;
}
}