2. 两数相加
链表有头结点
package leetcode; public class demo_2 { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode l =new ListNode(); ListNode temp =new ListNode(); int add=0; l1=l1.next; l2=l2.next; l=temp; while(l1!=null&&l2!=null) { ListNode t = new ListNode(); t.val=(l1.val+l2.val+add)%10; add=(l1.val+l2.val+add)/10; temp.next=t; temp=temp.next; l1=l1.next; l2=l2.next; } while(l1!=null) { ListNode t = new ListNode(); t.val=(l1.val+add)%10; add=(l1.val+add)/10; temp.next=t; temp=temp.next; l1=l1.next; } while(l2!=null) { ListNode t = new ListNode(); t.val=(l2.val+add)%10; add=(l2.val+add)/10; temp.next=t; temp=temp.next; l2=l2.next; } if(add==1) { ListNode t = new ListNode(); t.val=1; temp.next=t; } temp=l; while(temp.next!=null) { System.out.print(temp.next.val+" "); temp=temp.next; } return l; } public static void main(String[] args) { // TODO Auto-generated method stub int[] str1= {2,4,3}; int[] str2= {5,6,4}; ListNode l1=new ListNode(); ListNode l2=new ListNode(); demo_2 d2= new demo_2(); l1.creatnode(l1, str1); l2.creatnode(l2, str2); d2.addTwoNumbers(l1, l2); } }
链表无头结点
class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode l =new ListNode(); ListNode temp =new ListNode(); int add=0; temp.val=(l1.val+l2.val+add)%10; add=(l1.val+l2.val+add)/10; l1=l1.next; l2=l2.next; l=temp; while(l1!=null&&l2!=null) { ListNode t = new ListNode(); t.val=(l1.val+l2.val+add)%10; add=(l1.val+l2.val+add)/10; temp.next=t; temp=temp.next; l1=l1.next; l2=l2.next; } while(l1!=null) { ListNode t = new ListNode(); t.val=(l1.val+add)%10; add=(l1.val+add)/10; temp.next=t; temp=temp.next; l1=l1.next; } while(l2!=null) { ListNode t = new ListNode(); t.val=(l2.val+add)%10; add=(l2.val+add)/10; temp.next=t; temp=temp.next; l2=l2.next; } if(add==1) { ListNode t = new ListNode(); t.val=1; temp.next=t; } return l; } }
浙公网安备 33010602011771号