剑指offer最优解Java版-对称的二叉树
2019-07-15 本文已影响1人
全菜工程师小辉
题目描述
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
解决方法:递归
class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
public class Solution {
boolean isSymmetrical(TreeNode pRoot)
{
if(pRoot==null){
return true;
}
return isSame(pRoot.left,pRoot.right);
}
private boolean isSame(TreeNode left, TreeNode right){
if(left == null) return right==null;
if(right == null) return false;
if(left.val==right.val){
return isSame(left.left,right.right) && isSame(left.right,right.left);
}else{
return false;
}
}
}
复杂度分析:
- 时间复杂度:O(n)。
- 空间复杂度:O(n)。