当前位置: 代码迷 >> 综合 >> 2:两数之和,两个链表相加
  详细解决方案

2:两数之和,两个链表相加

热度:69   发布时间:2023-09-29 22:37:15.0

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

第一次遍历:相加,val大于10了,当其中一个为0时,赋值为0相加

第二次遍历:把val大于10的处理了,存在进位为null的情况,此时赋值为1

    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode l3 =new ListNode(l1.val+l2.val);l1=l1.next;l2=l2.next;ListNode l4=l3;while(l1!=null|| l2!=null){if(l1==null){l1=new ListNode(0);}if(l2==null){l2=new ListNode(0);}l3.next=new ListNode(l1.val+l2.val);l3=l3.next;l1=l1.next;l2=l2.next;}ListNode l5= l4;while(l4!=null){if(l4.val>=10){l4.val=l4.val-10;if(l4.next!=null){l4.next.val=l4.next.val+1;}else{l4.next=new ListNode(1);}}l4=l4.next;}return l5;}

  相关解决方案