leetcode 2. add two numbers
2016-04-20 14:46
375 查看
//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
public class Solution {
static class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 0;
ListNode a = new ListNode(0);
ListNode b = new ListNode(0);
ListNode c = new ListNode(0);
c = a;
ListNode d = new ListNode(0);
d = b;
//自己写的数据
a.val = 5;
b.val = 5;
while(i<2){
a.next = new ListNode(0);
b.next = new ListNode(0);
a = a.next;
b = b.next;
a.val = 5;
b.val = 5;
i++;
}
//例子数据
// a.val = 2;
// a.next = new ListNode(0);
// a = a.next;
// a.val = 4;
//// a.next = new ListNode(0);
//// a = a.next;
//// a.val = 3;
// b.val = 5;
// b.next = new ListNode(0);
// b = b.next;
// b.val = 6;
// b.next = new ListNode(0);
// b = b.next;
// b.val = 4;
ListNode e = addTwoNumbers(c,d);
while(e!=null){
System.out.println(e.val);
e = e.next;
}
}
public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode res = new ListNode(0);
ListNode p = new ListNode(0);
p = res;
boolean flag = true;
while(l1!=null||l2!=null){
int val1 = 0;
int val2 = 0;
int val = 0;
if(l1!=null){
val1 = l1.val;
l1 = l1.next;
}
if(l2!=null){
val2 = l2.val;
l2 = l2.next;
}
if(flag == false){
val = val1+val2+1;
flag = true;
}else{
val = val1+val2;
}
if(val>=10) {
flag = false;
val = val%10;
}
res.next = new ListNode(val);
res = res.next;
}
if(flag == false){
res.next = new ListNode(1);
res = res.next;
}
return p.next;
}
}
//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
public class Solution {
static class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 0;
ListNode a = new ListNode(0);
ListNode b = new ListNode(0);
ListNode c = new ListNode(0);
c = a;
ListNode d = new ListNode(0);
d = b;
//自己写的数据
a.val = 5;
b.val = 5;
while(i<2){
a.next = new ListNode(0);
b.next = new ListNode(0);
a = a.next;
b = b.next;
a.val = 5;
b.val = 5;
i++;
}
//例子数据
// a.val = 2;
// a.next = new ListNode(0);
// a = a.next;
// a.val = 4;
//// a.next = new ListNode(0);
//// a = a.next;
//// a.val = 3;
// b.val = 5;
// b.next = new ListNode(0);
// b = b.next;
// b.val = 6;
// b.next = new ListNode(0);
// b = b.next;
// b.val = 4;
ListNode e = addTwoNumbers(c,d);
while(e!=null){
System.out.println(e.val);
e = e.next;
}
}
public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode res = new ListNode(0);
ListNode p = new ListNode(0);
p = res;
boolean flag = true;
while(l1!=null||l2!=null){
int val1 = 0;
int val2 = 0;
int val = 0;
if(l1!=null){
val1 = l1.val;
l1 = l1.next;
}
if(l2!=null){
val2 = l2.val;
l2 = l2.next;
}
if(flag == false){
val = val1+val2+1;
flag = true;
}else{
val = val1+val2;
}
if(val>=10) {
flag = false;
val = val%10;
}
res.next = new ListNode(val);
res = res.next;
}
if(flag == false){
res.next = new ListNode(1);
res = res.next;
}
return p.next;
}
}
相关文章推荐
- linux下tar等打包压缩工具及while语句编写脚本(九)
- csv读写
- asp按钮事件获取GridView行数
- 设置或获取页面信息
- git相关
- [Form Builder]内置函数execute_trigger、do_key详解
- JavaScript 装逼指南
- zookeeper 安装
- log4j.properties配置详解与实例-全部测试通过
- 学习笔记
- 织梦模板安装
- MFC 控件大小随窗体改变而改变大小的总结
- centos mysql安装 完全版
- 页面操作时显示“处理中,请稍候。。。”
- js中的闭包之我理解
- CrashReport,BugReport的核心--创建dump文件
- CSS渲染原理
- eclipse 中解决 git 冲突
- RequiredFieldValidator控件用法简介
- Jqurey图片放大镜插件