LeetCode Same Tree

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {

    if(!p&&!q)
        return true;
    else if(p&&q)
    {
        if(p->val==q->val) {
            return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);//这部分有点乱
        }
        else 
            return false;
    }
    else
        return false;
    
}

这是我自己的原创C语言代码,看过论坛之后,大家都努力减少代码行数。


一行C语言版(转载)

return ((p && q) && (isSameTree(p->left, q->left) && isSameTree(p->right, q->right) && (p->val == q->val)? true : false)) || (!p && !q);
一行Java版(转载)
public boolean isSameTree(TreeNode p, TreeNode q) {

        return (p==null && q==null)|| ((p==null?'x':p.val)==(q==null?'x':q.val) && 
               isSameTree(p.left, q.left) && isSameTree(p.right, q.right));
    }
JS版(转载)
var isSameTree = function(p, q) {

    if(p === null && q === null)
        return true;

    else if(p === null || q === null)//感觉原创作者这里不对,加入else应该没问题,没有验证
        return false;

    if(p.val === q.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right))
        return true;
    else
        return false;

};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值