首页所有驱动分类下载数据挖掘与人工智能搜索引擎与SEO技术备忘录站长随笔

两数相加 - 力扣题库解题(leetcode)

2020-01-20 力扣(leetcod) 浏览次数:30
 
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

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

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

示例:

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

代码:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/

struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){
struct ListNode* l_1=l1;
struct ListNode* l_2=l2;
struct ListNode* l_result=0;
struct ListNode* l_last=0;
int T=0;
while (l_1 || l_2){
int N1=0;
if (l_1){
N1=l_1->val;
l_1=l_1->next;
}

int N2=0;
if (l_2){
N2=l_2->val;
l_2=l_2->next;
}

int N3=T+N1+N2;
T=0;
if (N3 >= 10){
N3=N3-10;
T=1;
}

struct ListNode* l_tmp=(struct ListNode*)malloc(sizeof(struct ListNode));
l_tmp->val=N3;
l_tmp->next=0;

if (!l_result){
l_result=l_tmp;
}
else{
l_last->next=l_tmp;
}

l_last=l_tmp;
}

if (T > 0){
struct ListNode* l_tmp=(struct ListNode*)malloc(sizeof(struct ListNode));
l_tmp->val=1;
l_tmp->next=0;
l_last->next=l_tmp;
}

return l_result;
}

留言

有啥想说的就说吧,有啥想问的就问吧
Good good study, day day up!

名称

Email

内容

预览(只读), 点击返回编辑.

 
最新文章
 
留言
版权所有 © 2020 mypcrun.com.
桂ICP备19002156号桂公网安备 45070202000667号
这回把网站设计得那么漂亮,这下子不会被人笑了吧。