题解 | 链式A+B

链式A+B

https://www.nowcoder.com/practice/ed85a09f0df047119e94fb3e5569855a

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};*/
class Plus {
  public:
    ListNode* plusAB(ListNode* a, ListNode* b) {
        // write code here
        if (!a ) return b;
        if (!b) return a;
        auto* sum = new ListNode{0};
        ListNode* sptr = sum;
        bool over_flag = false;
        while (a || b) {
            int tmp_a = a ? a->val : 0;
            int tmp_b = b ? b->val : 0;

            int tmp = tmp_a + tmp_b + static_cast<int>(over_flag);
            over_flag = tmp > 9;
            auto s = new ListNode(tmp % 10);
            sptr->next = s;
            sptr = sptr->next;
            if(a)a = a->next;
            if(b)b = b->next;

        }
        if(over_flag){
            sptr->next = new ListNode(1);
        }
        return sum->next;

    }
};

全部评论

相关推荐

10-15 10:23
门头沟学院 Java
牛可乐的头像真牛:赶紧举报,这公司绝对是诈骗的,等你签约后工作一两个月后根据合同漏洞把你开除,并且要求你赔偿3w培训费,996是为了提前筛选心甘情愿签下合同容易受骗的群体,纯粹面向校招生精心设计的骗局
你见过哪些工贼行为
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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