不会飞的章鱼

熟能生巧,勤能补拙;念念不忘,必有回响。

剑指 Offer 27. 二叉树的镜像

题目

剑指 Offer 27. 二叉树的镜像

相当于复制后做一下翻转,本来是左子树变为右子树,同理右子树变左子树:

题解

递归

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//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 mirrorTree(TreeNode root) {
// 当节点为空时,直接返回
if (root == null) return null;

// 设置一个临时的节点 tmp 用来存储当前节点的左子树
TreeNode tmp = root.left;

// 以下两个操作是交换当前节点的左右子树
root.left = mirrorTree(root.right);

// 当前节点的左子树为节点的右子树
// 同时递归下去,不停的交换子树中的节点
root.right = mirrorTree(tmp);

// 当前节点的右子树为节点的左子树
// 同时递归下去,不停的交换字树中的节点

// 最后返回根节点
return root;
}
}

执行:

1
2
执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:38.7 MB, 在所有 Java 提交中击败了82.58%的用户
------ 本文结束------
如果本篇文章对你有帮助,可以给作者加个鸡腿~(*^__^*),感谢鼓励与支持!