【LintCode-167】链表求和(Java实现)

来源:互联网 发布:windows模拟器 编辑:程序博客网 时间:2024/06/16 15:14

这里写图片描述
第一次代码记录:

      public ListNode addLists(ListNode l1, ListNode l2) {        ListNode result=l1;        ListNode temp=l1;        ListNode lastNode=null;        int sum=0;        while(l1!=null||l2!=null){            if(l1!=null){                sum+=l1.val;                l1=l1.next;            }            if(l2!=null){                sum+=l2.val;                l2=l2.next;            }            if(l2!=null&&l1==null){                temp.next=new ListNode(0);            }            if(sum>=10){                                temp.val=sum%10;                if(temp.next==null){                    lastNode=temp;                }                temp=temp.next;                sum=1;            }else {                temp.val=sum;                temp=temp.next;                sum=0;            }            }        if(sum==1){            lastNode.next=new ListNode(1);        }            return result;}

第二次代码记录:

       public ListNode addLists(ListNode l1, ListNode l2) {           int sum=0;           ListNode tmpNodeList=new ListNode(0);           ListNode resultNodeList=tmpNodeList;           while(l1!=null||l2!=null){               if(l1!=null){                   sum+=l1.val;                   l1=l1.next;               }               if(l2!=null){                   sum+=l2.val;                   l2=l2.next;               }               if(sum>=10){                   tmpNodeList.val=sum%10;                   sum=1;               }else{                   tmpNodeList.val=sum;                   sum=0;               }               if(l1!=null||l2!=null){                    tmpNodeList.next=new ListNode(0);                    tmpNodeList=tmpNodeList.next;                   }                  }           if(sum==1){               tmpNodeList.next=new ListNode(1);           }           return resultNodeList;       }

个人解题思路:
与前几章的思路相似,只需要考虑进位问题,只是将之前的数组/字符串 换成了单链表。
第一次代码:是依附在传入的参数链表中的任意一条,将其作为返回值链表头,通过修改链表上的val与新增链表节点(因为返回值链表的长度>=任何一条参数链表)来实现。
第二次代码:返回自己创建的链表,没有依附在任何一条参数链表上。

如果您有更好的解法,欢迎您在留言区补充,感谢!!

原创粉丝点击