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

链表相加(二)

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

function ReverseList(pHead){
        if(pHead == null || pHead.next == null){
            return pHead;
        }
        let pre = null;
        let cur = pHead;
        let next = null;
        while(cur != null){
            next = cur.next;
            cur.next = pre;
            pre = cur;
            cur = next;
        }
        return pre;
    }
    function addInList( head1 ,  head2 ) {
        head1 = ReverseList(head1);
        head2 = ReverseList(head2);
        let carry = 0;
        let dummy = new ListNode(0);
        let cur = dummy;
        while(head1 != null || head2 != null){
            let sum = carry;
            if(head1 != null){
                sum += head1.val;
                head1 = head1.next;
            }
            if(head2 != null){
                sum += head2.val;
                head2 = head2.next;
            }
            carry = Math.floor(sum / 10);
            sum = sum % 10;
            cur.next = new ListNode(sum);
            cur = cur.next;
        }
        if(carry != 0){
            cur.next = new ListNode(carry);
        }
        return ReverseList(dummy.next);
    }


全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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