生活随笔
收集整理的這篇文章主要介紹了
(1 LEETCODE)2. Add Two Numbers
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
- 書寫到了鏈表的反轉(zhuǎn)(這個題目沒有使用到)
- 數(shù)組轉(zhuǎn)為鏈表
- 解題思路:一位一位的相加,存儲在數(shù)組中,再轉(zhuǎn)為鏈表
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/class Solution {public ListNode reverse(ListNode L1){ListNode result=new ListNode(0);ListNode p=L1;while(p!=null){ListNode temp=p.next;p.next=result.next;result.next=p;p=temp;}return result.next;}// arr 的有效數(shù)字是 0-9 -代表無效數(shù)字public ListNode arrayToList(int[] arr){ListNode head=new ListNode();if(arr[0]!=-1){head.val=arr[0];}ListNode result=head;ListNode p=new ListNode();for(int i=1;i<arr.length;i++){if(arr[i]==-1){break;}else{ListNode temp=new ListNode(arr[i]);result.next=temp;result=result.next; }}return head;}public ListNode addTwoNumbers(ListNode l1, ListNode l2) {// ListNode L1=reverse(l1);// ListNode L2=reverse(l2);int[] result=new int[102];for(int i=0; i<102; i++){result[i]=-1;}ListNode L1 = l1;ListNode L2 = l2; int jinwei=0; int k=0;while(L1 != null || L2 != null){int i=0,j=0;if(L1==null) {i=0;}else{i=L1.val;L1=L1.next;}if(L2 ==null){j=0;}else{j=L2.val;L2=L2.next;}int Q=i+j+jinwei;result[k]=Q%10;k++;// System.out.println(Q%10);// p.next=new ListNode();jinwei=Q>9?1:0;}if(jinwei==1){result[k]=1;}for(int i=0;i<result.length;i++){if(result[i]==-1){break;}else{System.out.println(result[i]);}}return arrayToList(result);//現(xiàn)在就計算到最后一個位置了;}
}
在這里插入代碼片
總結(jié)
以上是生活随笔為你收集整理的(1 LEETCODE)2. Add Two Numbers的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。