算法基础
来源:互联网 发布:mac新建的文件夹在哪里 编辑:程序博客网 时间:2024/04/29 20:01
链表求和
题目:
你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。
样例:
给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null
分析:
相同位置相加,如果不足补0,如果加到最后,进位不为0,还需要另外添加一个节点。
答案:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { /** * @param l1: the first list * @param l2: the second list * @return: the sum list of l1 and l2 */ public ListNode addLists(ListNode l1, ListNode l2) { // write your code here ListNode r = null, pre = null, mid; // 进位值 int temp = 0; // 个位数 int num = 0; while (true) { if (null == l1 && null == l2) { break; } num = (l1.val + l2.val + temp) % 10; if (null == pre) { pre = new ListNode(num); r = pre; } else { mid = new ListNode(num); pre.next = mid; //r = pre; pre = pre.next; } temp = (l1.val + l2.val + temp) / 10; if (null == l1.next && null == l2.next) { break; } l1 = l1.next == null ? new ListNode(0) : l1.next; l2 = l2.next == null ? new ListNode(0) : l2.next; } if (temp > 0) { pre.next = new ListNode(temp); } return r; }}
0 0
- 算法基础
- 算法基础
- 算法基础
- 基础算法
- 算法基础
- 基础算法
- 基础算法-
- 基础算法
- 算法基础
- 算法基础
- 基础算法
- 基础算法
- 算法基础
- 基础算法
- 基础算法
- 基础算法
- 基础算法
- 算法基础
- iOS程序更新后新特性介绍界面的实现
- 计算机语言基础教程(施工中)
- iOS开发系列--并行开发其实很容易
- 第九周项目39-阅读程序,写出执行结果(4)
- PID算法通俗教程
- 算法基础
- SkillCollege/QrCodeScan简单引入
- 【java】 Collection介绍
- 在ubantu下安装jdk1.7 (卸载)
- UML类图实例
- 爬虫系列
- 关于代码审查的五问五答
- 会报编译器警告的Xcode 6.3新特性:Nullability Annotations
- GitHub入门使用