leetcode add two numbers

好久沒有寫博客了,總之沒想到大學生活要結束的這麼快...接下去就是努力找實習

複習下鏈表的知識,晃晃悠悠寫了1個小時,果然好久不碰算法了。

public ListNode addTwoNumber(ListNode l1,ListNode l2){
	int carry=0;//設置進位
	ListNode p=new ListNode(-1);//新建返回鏈表 
	ListNode head=p;
    while(l1!=null||l2!=null){
    	ListNode l3=new ListNode(carry);//新建返回鏈表 
    	  if (l1!=null){
			carry=carry+l1.val;
			l1=l1.next;
		}
		if (l2!=null){
			carry=carry+l2.val;
			l2=l2.next;
		}
		l3.val=carry%10;
		carry=carry/10;
		if (p.val<0)//說明是頭結點
    		{
			p=l3;
			head=p;
    		}
    	else//否則不是頭結點
    		{
    		p.next=l3;
    		p=p.next;
    		}
	 }
    if(carry!=0)//如果最後一位有進位,要增加節點
    {
    	ListNode l3=new ListNode(carry);//新建返回鏈表 
    	p.next=l3;
    }
	 return head;
 }



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章