题解 | #链表相加(一)#

链表相加(一)

http://www.nowcoder.com/practice/521d83306d964c1188639033eb59621d

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param l1 ListNode类 
 * @param l2 ListNode类 
 * @return ListNode类
 */
struct ListNode* ListAdd(struct ListNode* l1, struct ListNode* l2 ) {
    // write code here
    int sum = 0;
    int carry = 0;
    int val1 = 0;
    int val2 = 0;
    struct ListNode* lResult = NULL;
    struct ListNode* lReturn = NULL;
    struct ListNode* lTemp = NULL;
    
    while (l1 || l2 || carry == 1) {
        val1 = (l1 == NULL ? 0 : l1->val);
        val2 = (l2 == NULL ? 0 : l2->val);
        sum = val1 + val2 + carry;
        carry = sum / 10;
        sum = sum % 10;
        lTemp = (struct ListNode*)malloc(sizeof(struct ListNode));
        lTemp->next = NULL;
        lTemp->val = sum;
        if (lResult == NULL) {
            lResult = lTemp;
            lReturn = lResult;
        }
        lResult->next = lTemp;
        lResult = lResult->next;
        l1 = (l1 == NULL)? NULL : l1->next;
        l2 = (l2 == NULL)? NULL : l2->next;
    }
    /*if (carry == 1) {
        lTemp = (struct ListNode*)malloc(sizeof(struct ListNode));
        lTemp->next = NULL;
        lTemp->val = carry;
        lResult->next = lTemp;
        lResult = lResult->next;
    }*/
    return lReturn;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利 有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的 真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 11:27
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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