题解 | #对称的二叉树#

对称的二叉树

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

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param pRoot TreeNode类 
 * @return bool布尔型
 */
 
 //递归检查是否对称
bool check(struct TreeNode* rchild,struct TreeNode* lchild){
    
    //如果right是空,则left也空才是对称,否则不对称
    if(rchild==NULL){
        if(lchild==NULL){
            return 1;
        }else{
            return 0;
        }
    }
    
    //如果left是空,则right也空才是对称,否则不对称
    if(lchild==NULL){
        if(rchild==NULL){
            return 1;
        }else{
            return 0;
        }
    }
    
    //如果right和left都不是空且他们两个值相等,递归比较
    if(rchild->val==lchild->val){
        //比较右儿子的右与左儿子的左,和,右儿子的左与左儿子的右是不是对称
        return check(rchild->right,lchild->left) && check(rchild->left,lchild->right);
    }
    
    return 0;//如果right和left的值不相等,则不对称

}

bool isSymmetrical(struct TreeNode* pRoot ) {
    // 空树是对称树
    if(pRoot==NULL){
        return 1;
    }
    return check(pRoot->right,pRoot->left);
}
全部评论

相关推荐

10-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务