对称的二叉树

《剑指offer》刷题笔记。如有更好解法,欢迎留言。

关键字: 深度优先遍历

题目描述:

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

思路:

  • 简单暴力的方法就是生成镜像树,再比较。
  • 这里直接递归遍历,比较左子树的左节点与右子树的右节点,还有左子树的右节点与右子树的左节点。
function isSymmetrical(pRoot)
{
    if(!pRoot){
        return true;
    }
    function dfs(left,right){
        if(left === null && right === null){
            return true;
        }
        if(left !== null && right !== null && left.val === right.val){
            return dfs(left.left,right.right)&&dfs(left.right,right.left);
        }
        return false;
    }
    return dfs(pRoot.left,pRoot.right);
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目: 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,下图所...
    咋家阅读 1,482评论 0 0
  • 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对...
    凌霄文强阅读 3,068评论 0 2
  • 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对...
    囧略囧阅读 3,405评论 0 0
  • 本系列导航:剑指offer(第二版)java实现导航帖 面试题28:对称的二叉树 题目要求:判断一棵二叉树是不是对...
    ryderchan阅读 4,562评论 0 0
  • 题目 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,在如图4...
    Longshihua阅读 786评论 0 1