博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法-两数相加
阅读量:5845 次
发布时间:2019-06-18

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

/* 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 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* l3 = (struct ListNode*)malloc(sizeof(struct ListNode));    struct ListNode* n1 = l1;    struct ListNode* n2 = l2;    struct ListNode* n3 = l3;    int carry = 0;    while (1) {        int c1 = 0;        int c2 = 0;        if (n1 != NULL) {            c1 = n1->val;            n1 = n1 ->next;        }        if (n2 != NULL) {            c2 = n2->val;            n2 = n2 ->next;        }        int sum = c1 + c2 + carry;        carry = sum /10;        int currentValue = sum % 10;        n3->val = currentValue;        //考虑进位有值得情况需要进入下一个循环        if(n1 != NULL || n2 != NULL || carry)        {            struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));            n3->next = newNode;            n3 = n3 ->next;        }        else        {        //最后一个节点为NULL            n3 ->next = NULL;            break;        }    }       return l3;}复制代码

小结:面向过程的思路。 注意的几个问题:

  1. 进位问题,低位相加得出进位值提供给高位计算。
  2. 最后一轮相加的时候可能会产生进位,这个时候需要进入下一轮循环,计算下一位的值。

待完善L('ω')┘三└('ω')」....

转载地址:http://zsqcx.baihongyu.com/

你可能感兴趣的文章
Android Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
查看>>
请问两个div之间的上下距离怎么设置
查看>>
nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录
查看>>
如何利用ansible callback插件对执行结果进行解析
查看>>
003_ElasticSearch详解与优化设计
查看>>
ubifs概述
查看>>
fastdfs-zyc监控系统的使用
查看>>
工业标准接口OPC Server
查看>>
C#预处理器指令
查看>>
自述创业史 | XMove动作感应系统(二)
查看>>
洗衣机的维修和电动机
查看>>
Operating System-Thread(3)用户空间和内核空间实现线程
查看>>
堆 虚拟内存
查看>>
js-JavaScript常见的创建对象的几种方式
查看>>
Linus 谈软件开发管理经验
查看>>
Hibernate实体类注解中如何忽略某些字段的映射
查看>>
kafka常用命令
查看>>
Java分布式服务框架Dubbo初探(待实践)
查看>>
spring配置文件中bean标签
查看>>
Redis 缓存 + Spring 的集成示例
查看>>