这还不够简洁?

链式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;
}
全部评论

相关推荐

06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-25 17:55
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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