对称的二叉树

对称的二叉树

https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb?tpId=13&&tqId=11211&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

这个题目还是比较有意思的,想了两个必要条件:

  1. 中序遍历的结果是回文的(对称的)
  2. 层序遍历的每一层是对称的

应该可以通过一些案例,但是不是充分必要条件,最后看了一下题解,代码非常少,还是很巧妙的。

public class Solution {
    public boolean isSymmetrical(TreeNode pRoot) {
        return isSame(pRoot, pRoot);
    }

    private boolean isSame(TreeNode r1, TreeNode r2) {
        if (r1 == null && r2 == null)
            return true;
        if (r1 == null || r2 == null)
            return false;
        return r1.val == r2.val 
            && isSame(r1.left, r2.right)
            && isSame(r1.right, r2.left);
    }
}
全部评论

相关推荐

06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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