操作给定的二叉树,将其变换为源二叉树的镜像。
数据范围:二叉树的节点数 0≤n≤10000 \le n \le 10000≤n≤1000 , 二叉树每个节点的值 0≤val≤10000\le val \le 1000 0≤val≤1000
要求: 空间复杂度 O(n)O(n)O(n) 。本题也有原地操作,即空间复杂度 O(1)O(1)O(1) 的解法,时间复杂度 O(n)O(n)O(n)
import java.util.*;
public class Solution {
public TreeNode Mirror (TreeNode pRoot) {
if(pRoot==null)
return pRoot;
if(pRoot.left==null && pRoot.right==null)
return pRoot;
//处理根节点,交换左右节点
TreeNode temp=pRoot.left;
pRoot.left=pRoot.right;
pRoot.right=temp;
//处理左子树
Mirror(pRoot.left);
//处理右子树
Mirror(pRoot.right);
return pRoot;
}
}