博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2-Add Two Numbers @LeetCode
阅读量:5239 次
发布时间:2019-06-14

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

2-Add Two Numbers @LeetCode

题目

这里写图片描述

思路

题目中得到的信息有:

  1. 这是两个非负数,每位分别保存在链表的一个结点上;
  2. 逆序保存,从低位到高位依次。

一般整数的相加都是从低往高进行,和保存的顺序一致,因此一次遍历就可完成,可以看出这道题目不难。

C算法

/** * Definition for singly-linked list.  * struct ListNode { *     int val; *     struct ListNode *next; * }; */struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {    struct ListNode *ret, *p, *prev;    p = ret = prev = NULL;    int flag = 0;    //先是两个整数相加    while((l1 != NULL) && (l2 != NULL) ) {         p = (struct ListNode *)malloc(sizeof(struct ListNode));        p->val = l1->val + l2->val + flag;        flag = p->val / 10;        p->val -= (flag > 0 ? 10 : 0);        if (prev != NULL) prev->next = p;        prev = p;        if (ret == NULL) ret = p;        l1 = l1->next;        l2 = l2->next;    }    //若是l1还有结点,添加上去    while(l1 != NULL) {        p = (struct ListNode *)malloc(sizeof(struct ListNode));         p->val = l1->val  + flag;         flag = p->val / 10;        p->val -= (flag > 0 ? 10 : 0);        l1 = l1->next;          if (prev != NULL) prev->next = p;        if (ret == NULL) ret = p;        prev->next = p;        prev = p;    }    //若是l2还有结点,添加上去    while(l2 != NULL) {        p = (struct ListNode *)malloc(sizeof(struct ListNode));         p->val = l2->val  + flag;         flag = p->val / 10;        p->val -= (flag > 0 ? 10 : 0);        l2 = l2->next;          if (prev != NULL) prev->next = p;         if (ret == NULL) ret = p;        prev->next = p;        prev = p;    }    //最后可能会有进位,要考虑到    if (flag != 0) {        p = (struct ListNode *)malloc(sizeof(struct ListNode));        p->val = flag;        prev->next = p;        prev = p;        flag = 0;    }    prev->next = NULL;    return ret;}

结果

这里写图片描述

转载于:https://www.cnblogs.com/liwugang/p/7594091.html

你可能感兴趣的文章
C#编程时应注意的性能处理
查看>>
Fragment
查看>>
比较安全的获取站点更目录
查看>>
苹果开发者账号那些事儿(二)
查看>>
使用C#交互快速生成代码!
查看>>
UVA11374 Airport Express
查看>>
P1373 小a和uim之大逃离 四维dp,维护差值
查看>>
NOIP2015 运输计划 树上差分+树剖
查看>>
P3950 部落冲突 树链剖分
查看>>
读书_2019年
查看>>
读书汇总贴
查看>>
微信小程序 movable-view组件应用:可拖动悬浮框_返回首页
查看>>
MPT树详解
查看>>
空间分析开源库GEOS
查看>>
RQNOJ八月赛
查看>>
前端各种mate积累
查看>>
jQuery 1.7 发布了
查看>>
Python(软件目录结构规范)
查看>>
Windows多线程入门のCreateThread与_beginthreadex本质区别(转)
查看>>
Nginx配置文件(nginx.conf)配置详解1
查看>>