leetcode Add Two Numbers

来源:互联网 发布:html a 调用js 编辑:程序博客网 时间:2024/06/06 16:30

   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.

   下面是我的解法

//一下部分为自己最初的解法(刚开始题目理解的有问题,只能将错就错,改成这样了)//LinkedList<Integer>  tempL1 = new LinkedList<Integer>();//while(l1!= null){//tempL1.add(l1.val);//l1 = l1.next;//}//LinkedList<Integer>  tempL2 = new LinkedList<Integer>();//while(l2!= null){//tempL2.add(l2.val);//l2 = l2.next;//}////int len = tempL2.size()-tempL1.size();//if(len >0){////for(int i=0; i<len; i++){//tempL1.add(0);//}//}else{//for(int i=0; i<len*-1; i++){//tempL2.add(0);//}//}////LinkedList<Integer> tempResult = new LinkedList<Integer>();//int sum = 0;//for(int i=0; i<tempL2.size(); i++){// int temp = sum +tempL1.get(i) + tempL2.get(i);// tempResult.add(temp%10);// sum = temp/10;//}//if(sum!=0){//tempResult.add(sum);//}////LinkedList<ListNode> result = new LinkedList<ListNode>();//for(int item : tempResult){//result.add(new ListNode(item));//}////for(int i=0; i<result.size() -1;i++){//result.get(i).next = result.get(i+1);//}////if(result.size() > 0){//return result.get(0);//}else{//return null;//}ListNode temp = new ListNode(0);ListNode result = temp;if(l1 == null) return l2;if(l2 == null) return l1;int sum = 0;int i = 0;while((l1 != null) || (l2 != null)){if(l1 != null){sum +=l1.val;l1 = l1.next;}if(l2 != null){sum += l2.val;l2 = l2.next;}ListNode ln = new ListNode(sum%10);sum = sum/10;result.next = ln;result = result.next;}if(sum != 0){ListNode ln  = new ListNode(sum);result.next = ln;}return  temp.next;


0 0