判断是否为镜像二叉树

对称的二叉树

http://www.nowcoder.com/questionTerminal/ff05d44dfdb04e1d83bdbdab320efbcb

其实本来想遍历两遍,一遍先左后右,一遍先右后左,得出来的序列一致即镜像。
想想如果树太大这样做也不是很好。
这里其实是深度优先遍历,不过是两个指针一起遍历的,一个左,一个右

public class Solution {
    boolean checkSame(TreeNode p1, TreeNode p2){
        if(p1==null&&p2==null){
            return true;
        }
        if(p1==null||p2==null){
            return false;
        }
        if(p1.val==p2.val){
            return checkSame(p1.left, p2.right)&&checkSame(p1.right, p2.left);
        }else {
            return false;
        }
    }
    boolean isSymmetrical(TreeNode pRoot){
        if(pRoot==null){
            return true;
        }
        return checkSame(pRoot.left, pRoot.right);
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务