题目描述
难度:【简单】
标签:【二叉树】
翻转一棵二叉树。
题目地址:https://leetcode-cn.com/problems/invert-binary-tree/
示例
输入 4 / \ 2 7 / \ / \ 1 3 6 9
输出 4 / \ 7 2 / \ / \ 9 6 3 1
题目大意
翻转一棵二叉树。
解题
从示例中可以看出,要翻转一颗二叉树,站在节点的角度,就是把这个节点的左右子节点做个交换。
先做好交换的处理,然后根节点的左右子树进行递归,继续重复这个动作。
另外,考虑传入的节点为空的情况,直接返回 null 。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { public TreeNode invertTree(TreeNode root) { if (root == null) { return null; } // 利用一个临时节点,交换左右节点 TreeNode temp = root.left; root.left = root.right; root.right = temp; invertTree(root.left); invertTree(root.right); return root; } }