这还不够简洁?

链式A+B

http://www.nowcoder.com/questionTerminal/ed85a09f0df047119e94fb3e5569855a

struct ListNode *plusAB( struct ListNode *a, struct ListNode *b ) {
    struct ListNode node = {-1,NULL}, *tail = NULL;
    int jw = 0;

    tail = &node;
    while( a != NULL || b != NULL || jw != 0 ) {
        jw += a != NULL ? a->val : 0;
        jw += b != NULL ? b->val : 0;
        a = a != NULL ? a->next : a;
        b = b != NULL ? b->next : b;
        tail->next = (struct ListNode *) malloc( sizeof(*tail) );
        tail->next->val = jw % 10; // 取余数.
        tail->next->next = NULL;
        tail = tail->next;
        jw = jw / 10; // 取商.
    }

    return node.next;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 11:27
明天又是董事长面,啥时候是个头啊
在太阳里长大的人:公司就仨人吧😂
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:30
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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