AcWing打卡活动
《剑指Offer》打卡活动
周三第四题 二叉树的镜像
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
* 思路
* 规律
* 根的左右节点进行交换,不断递归即可
* 例子:
* 看样例
* a.如8为根,6和10分别为左右子节点,则交换后,10和6为左右子节点
* b.10为根节点,则9和11为左右子节点,则交换后,11和8为左右子节点
* c.重复以上步骤
*/
class Solution {
public void mirror(TreeNode root) {
if(root == null) {
return;
}
if(root.left == null && root.right == null) {
return;
}
// 交换
TreeNode temp = root.right;
root.right = root.left;
root.left = temp;
// 以right为根节点继续交换子节点
mirror(root.right);
// 以left为根节点继续交换子节点
mirror(root.left);
}
}
AcWing打卡活动
《剑指Offer》打卡活动
周三第四题 二叉树的镜像