博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 2. 两数相加(Add Two Numbers)
阅读量:4687 次
发布时间:2019-06-09

本文共 2028 字,大约阅读时间需要 6 分钟。

目录

题目描述:

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)    输出:7 -> 0 -> 8    原因:342 + 465 = 807

解法:

/*** 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 carry = 0;        ListNode* h1 = l1;        ListNode* h2 = l2;        if(l1 == NULL){            return l2;        }else if(l2 == NULL){            return l1;        }        ListNode* head = NULL;        ListNode* cur = NULL;        int val = 0;        while(h1 != NULL && h2 != NULL){            val = carry + h1->val + h2->val;            if(val >= 10){                carry = 1;                val -= 10;            }else{                carry = 0;            }            if(head == NULL){                head = new ListNode(val);                cur = head;            }else{                cur->next = new ListNode(val);                cur = cur->next;    // should point to the next node            }            h1 = h1->next;            h2 = h2->next;        }        while(h1 != NULL){            val = carry + h1->val;            if(val >= 10){                carry = 1;                val -= 10;            }else{                carry = 0;            }            cur->next = new ListNode(val);            h1 = h1->next;            cur = cur->next;        }        while(h2 != NULL){            val = carry + h2->val;            if(val >= 10){                carry = 1;                val -= 10;            }else{                carry = 0;            }            cur->next = new ListNode(val);            h2 = h2->next;            cur = cur->next;        }        if(carry != 0){ // if carry != 0, should add an additional node            cur->next = new ListNode(carry);        }        return head;    }};

转载于:https://www.cnblogs.com/zhanzq/p/10550545.html

你可能感兴趣的文章
IT常用单词
查看>>
拓扑排序
查看>>
NYOJ--32--SEARCH--组合数
查看>>
day07
查看>>
【Android开发:自定义控件系列二】关于PopupWindow的注意点
查看>>
HTML——使用表格进行页面布局
查看>>
字符串统计 连续的某个字符的数量 1.1.4
查看>>
JMS
查看>>
gulpfile 压缩模板
查看>>
JAVA知多少
查看>>
Kruskal算法(转)
查看>>
CSS3 Media Queries实现响应式布局
查看>>
【34.14%】【BZOJ 3110】 [Zjoi2013]K大数查询
查看>>
【 henuacm2016级暑期训练-动态规划专题 A 】Cards
查看>>
第五篇:白话tornado源码之褪去模板的外衣
查看>>
设备常用框架framework
查看>>
bootstrap模态框和select2合用时input无法获取焦点(转)
查看>>
快速转移数据的要领
查看>>
windows情况下的oracle效力
查看>>
*nix-style:定制 bash 提示符
查看>>