Leetcode 第二题,两数链表相加
来源:互联网 发布:mac怎么连续选择文字 编辑:程序博客网 时间:2024/06/16 17:24
问题:
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
即,两个整数链表,相加,返回一个整数链表,注意进位。
解法:其实这个题名并没有捷径和太多技巧,主要是看是否理解链表的结构。
如果学过C/C++的指针的话,理解起来会更加容易。
/** * Created by Atlantis on 16/4/25. *ListNode.java * Definition for singly-linked list. */public class ListNode { int val; ListNode next; ListNode(int x){ val = x; }}/** *Solution.java * Created by Atlantis on 16/4/25. */public class Solution { public static ListNode addTwoNumbers(ListNode l1, ListNode l2) { if(null == l1 && null == l2){ return null; } int forward = 0; ListNode ret = new ListNode(0); ListNode head = ret; while (null != l1 && null != l2){ int sum = l1.val + l2.val +forward; forward = sum/10; l1 = l1.next; l2 = l2.next; ret.next = new ListNode(sum%10); ret = ret.next; } while (null != l1){ int sum = l1.val+forward; ret.next = new ListNode(sum%10); forward = sum/10; ret = ret.next; l1 = l1.next; } while (null != l2){ int sum = l2.val+forward; ret.next = new ListNode(sum%10); forward = sum/10; ret = ret.next; l2 = l2.next; } if(forward != 0 ){ ret.next = new ListNode(forward); } return head.next; } public static void main(String[] args){ ListNode l1 = new ListNode(6); l1.next = new ListNode(4); l1.next.next = new ListNode(3); ListNode l2 = new ListNode(5); l2.next = new ListNode(6); l2.next.next = new ListNode(4); ListNode ret =addTwoNumbers(l1,l2); if(null != ret) { System.out.print(ret.val); } while (ret.next != null){ System.out.print("->"); System.out.print(ret.next.val); ret = ret.next; } }}
结束:难度不是很大,会一点C/C++,比起双向链表什么的,有点无聊。。。
链表这个东西,果然还是指针理解起来比较容易和直观。
0 0
- Leetcode 第二题,两数链表相加
- 【leetcode】第二题
- leetCode OJ 第二题
- leetcode第二题
- leetcode算法第二题
- leetcode第二题AddTwoNumber
- [LeetCode]67 二进制相加
- LeetCode之链表数相加
- 开始刷刷Leetcode—leetcode第二题
- 第二周LeetCode算法题
- leetcode第二题-----Reverse Integer
- Add Binary 二进制相加 @LeetCode
- Leetcode:Add Binary 二进制相加
- leetcode 之 二进制数相加
- [LeetCode]2 两个数相加
- LeetCode之二进制字符串相加
- 【LeetCode】 Add Digits 数字相加
- 后缀表达式求值--leetcode第二题
- C++类虚函数内存分布(这个 你必须懂)
- hadoop学习序曲之mysql基础篇--mysql之JDBC
- STM32 use microlib是干什么的
- chrome面板之source
- 学习笔记之对EL表达式的一些总结:
- Leetcode 第二题,两数链表相加
- 64B/66B编码
- C++预编译文件
- 常见的MIME类型如下表
- 带动态参数表的函数
- 表碎片整理时shrink和move如何选择(转)——写的很好
- [转]C++中的String类
- springMVC(5)------CookieValue注解获取cookie值
- vs2013 vassistx破解安装方法