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

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

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)

Output: 7 -> 0 -> 8

大非负整数相加,注意数字是怎么表示的就好,链表头是低位,尾是高位,另外最后一位记得处理,也不要忘了0的情况。

1 /** 2  * Definition for singly-linked list. 3  * struct ListNode { 4  *     int val; 5  *     ListNode *next; 6  *     ListNode(int x) : val(x), next(NULL) {} 7  * }; 8  */ 9 class Solution {10 public:11     ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {12         ListNode* p1 = l1, *p2 = l2;13         ListNode* ret = NULL;14         ListNode* p = ret;15         // 逐位相加16         while (p1 != NULL && p2 != NULL) {17             ListNode* tmp = new ListNode(p1->val + p2->val);18             // 判断是不是链表头19             if (ret == NULL) {20                 ret = tmp;21                 p = ret;22             } else {23                 p->next = tmp;24                 p = tmp;25             }26             p1 = p1->next;27             p2 = p2->next;28         }29         30         if (p1 != NULL) {31             p->next = p1;32         }33         if (p2 != NULL) {34             p->next = p2;35         }36         37         // 为空时要返回038         if (ret == NULL)39             return new ListNode(0);40         41         // 处理进位问题42         p = ret;43         while (p->next != NULL) {44             p->next->val += p->val / 10;45             p->val = p->val % 10;46             p = p->next;47         }48         // 处理最高位49         if (p->val >= 10) {50             ListNode* tmp = new ListNode(p->val / 10);51             p->next = tmp;52             p->val = p->val % 10;53         }54         55         return ret;56         57     }58 };

 

转载于:https://www.cnblogs.com/flowerkzj/p/3616586.html

你可能感兴趣的文章
去掉注释
查看>>
HackerRank【SQL2】
查看>>
微信内置浏览器 如何小窗不全屏播放视频?
查看>>
Programming Impala Applications
查看>>
Linux中MySQL5.5解压版普通用户安装
查看>>
html5 iphone苹果手机主屏幕 触摸滑动效果
查看>>
Android动画学习笔记
查看>>
Delphi 完整的Bug决议工具EurekaLog的使用
查看>>
libusb 开发者指南-牛胜超(转)
查看>>
C - 继续畅通工程 最小生成树
查看>>
centos7 更换jdk版本
查看>>
Android开发训练之第五章第七节——Transmitting Network Data Using Volley
查看>>
Java基础知识强化之集合框架笔记01:集合的由来与数组的区别
查看>>
Java基础知识强化之IO流笔记71:NIO之 NIO的(New IO流)介绍
查看>>
Android(java)学习笔记31:泛型高级之通配符
查看>>
Eclipse 修改workspace默认的字符集为 utf-8
查看>>
laravel artisan 工具心得
查看>>
软工作业 4:结对项目之词频统计——基本功能
查看>>
linux vim vi编辑时撤销输入操作
查看>>
java utils
查看>>