leetcode 2 Add Two Numbers

来源:互联网 发布:开淘宝店铺方便自己吗 编辑:程序博客网 时间:2024/06/03 14:53

问题

https://leetcode.com/problems/add-two-numbers/

代码(36ms)

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {        int over = 0;        int add = 0;        ListNode * head = new ListNode(0);        ListNode * now = head;        while(l1||l2){            if (l1 && l2)            {                add = l1->val + l2->val + over;                l1 = l1->next;                l2= l2->next;            }            else{                if (l1)                {                    add = l1->val + over;                    l1 = l1->next;                }else// l2;                {                    add = l2->val + over;                    l2 = l2->next;                }            }            over = add / 10;            add = add %10;            now->next = new ListNode(add);            // 指向 下一个位置。。            now = now->next;        }        if (over)        {            now->next = new ListNode(over);        }        if (head->next != NULL)// 说明result链表有长度,        {            now = head;            head = head->next;            delete now;        }        return head;    }};

为方便链表建立,为头指针指向一个无用的节点,最后删除这个无用节点。
注意每次写完一个节点,要将当前指针后移。

0 0