[LeetCode]No.2 Add Two Numbers

链接:https://leetcode.com/problems/add-two-numbers/
原题:
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)Output: 7 -> 0 -> 8

分析:
这道题实际上就是倒叙的链表,最终算出和,并以链接的形式呈现。
还是循环,但要注意可能有进1位 以及 两个数字长度不同的问题

public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        if (l1 == null) {
            return l2;
        }
        if (l2 == null) {
            return l1;
        }
        ListNode l1tmp = l1;
        ListNode l2tmp = l2;
        int add1 = 0;
        while (true) {
            int l1num = l1tmp.val;
            int l2num = l2tmp ==null?0:l2tmp.val;
            int value = l1num + l2num + add1;
            add1 = value / 10;
            value = value % 10;
            l1tmp.val = value;
            if (l1tmp.next == null) {
                if((l2tmp!=null &&  l2tmp.next!=null)|| add1!=0) {
                    l1tmp.next = new ListNode(0);
                } else {
                    break;
                }
            }
            l1tmp = l1tmp.next;
            l2tmp = l2tmp == null?null:l2tmp.next;
        }
        return l1;
    }

代码效率没有很高,待优化

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,768评论 0 33
  • 老屋在新屋的后面,是一排四间红色的瓦房。院子里靠东墙种了一棵杏树,两棵葡萄,还有一些花花草草,屋后是几棵老榆树。 ...
    简禾时光阅读 476评论 2 2
  • 豆苗: 见字如面,我是豆粉,我被你每天早晨在群里的英语诗朗诵所折服,粉丝团的团长竞争实在太过激烈,所以我只能默默做...
    灿灿_e560阅读 240评论 2 5
  • 楼主今年大二,昨天窝在宿舍里拉上窗帘在黑漆漆的环境下一口气看完了两部《大话西游》。在这之前就有很多人给我推荐这部片...
    手可摘_星辰阅读 612评论 0 0
  • 总觉得自己学习都不过脑子,这样学习特别没效率,虽然警告过自己很多次了,但是还是改不掉,确实是应该多联系,自己怎么就...
    初九你好阅读 148评论 0 0