LeetCode2——Add Two Numbers(两个链表中的数字相加,形成新链表)
来源:互联网 发布:网络拓扑图的网络设备 编辑:程序博客网 时间:2024/06/05 09:28
鄙人不才,故收录LeetCode中的解法和代码。
题目:
参考解法:
/** * 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) { ListNode preHead(0), *p = &preHead; int extra = 0; while (l1 || l2 || extra) { int sum = (l1 ? l1->val : 0) + (l2 ? l2->val : 0) + extra; extra = sum / 10; p->next = new ListNode(sum % 10); p = p->next; l1 = l1 ? l1->next : l1; l2 = l2 ? l2->next : l2; } return preHead.next; }};
分析:这里主要有两个问题,一个是两个链表长度不一致时的处理,一个是相加>10时的数据处理。
- 参考解法中运用三目运算符,很好地解决了第一个问题。即长度不一致时,比较短的那个链表用空来表示,数据为0。
- 进位和结果位,分别用/和%运算得到。
阅读全文
0 0
- LeetCode2——Add Two Numbers(两个链表中的数字相加,形成新链表)
- LeetCode2—Add Two Numbers
- 两个链表的数字相加(简单题) add two numbers
- Add Two Numbers 两个数字相加
- LeetCode | Add Two Numbers(两个链表相加)
- LeetCode2. Add Two Numbers(链表加法)
- LeetCode2——Add Two Numbers
- Leetcode2——Add Two Numbers
- LeetCode Add Two Numbers两个链表数值相加
- (leetcode)2. 两个链表相加Add Two Numbers--Java
- Add Two Numbers 两个链表相加 python
- [Leetcode]Add Two Numbers 链表实现大数字相加
- LeetCode-2. Add Two Numbers(链表实现数字相加)
- [LeetCode2]Add Two Numbers
- leetcode2 add two numbers
- LeetCode2 Add Two Numbers
- LeetCode2:Add Two Numbers
- LeetCode2 Add Two Numbers
- HTTP客户端+服务端小工具
- linux下磁盘占用达到100%了,找不到哪些大文件耗尽了磁盘。
- Java SE和Java EE介绍
- 2.线性表—单链表
- c++中一些处理i/o流和文件流信息的方法总结
- LeetCode2——Add Two Numbers(两个链表中的数字相加,形成新链表)
- CSS 实现隐藏滚动条同时又可以滚动(转)
- STL unique()函数学习
- tcp传输图片(发送端使用sendfile函数)
- 接口MD5签名校验工具类
- MyBatis插入语句返回主键值
- Windows上搭建React-Native开发环境
- 猫都能学会的Unity3D Shader入门指南(二)
- SVG字体模糊的解决方法