美文网首页
两数的和,链表

两数的和,链表

作者: peter_ffec | 来源:发表于2021-08-15 16:07 被阅读0次

hot 100 meddium

1. 第二题 两数字相加

见原题:https://leetcode-cn.com/problems/add-two-numbers/
链表中个位置上数字相加,满10进位,最高位不是0

111.png

解题思路:
java链表,取余,商,进位

  1. 新建类ListNode,保存value和下一个节点

     class ListNode {
         int val;
         ListNode next;
    
         public ListNode() {
         }
         public ListNode(int val) {
             this.val = val;
         }
         public ListNode(int val, ListNode next) {
             this.val = val;
             this.next = next;
         }
     }
    
  2. while循环解题
    思路:

    1. 找到当前节点应该存的值:低位进值+L1节点对应值+L2节点对应值 除10取商
    2. 当前值如果超过了9,需要进位0或者1

    需要的变量:低位 low 高位high 当前节点两个节点所在值的和 两个空对象ListNode,一个往后移动,一个保持头部位置不变

        int low = 0;
        int high = 0;
        ListNode res = new ListNode();
        ListNode p = res;
        int sum = 0;
        while (l1 != null || l2 != null) {
            if (l1 == null) {
                sum = l2.val + high;
            } else if (l2 == null) {
                sum = l1.val + high;
            } else {
                sum = l1.val + l2.val + high;
            }
            low = sum % 10;
            high = sum / 10;
            p.next = new ListNode(low);  //新建节点,并把尾指针后移
            p = p.next;
            if (l1!=null ) {
                l1 = l1.next;
            }
            if (l2!=null) {
                l2 = l2.next;
            }
    
        }
    
    
    1. 题目的坑
      如果最高位只有一个high不为0,已经跳出循环了,这时候该怎么处理呢?新建节点追加到末尾
            if (high != 0) {
                p.next = new ListNode(high);
            }
    
    

    难度系数:三颗星

相关文章

  • 两数的和,链表

    hot 100 meddium 1. 第二题 两数字相加 见原题:https://leetcode-cn.com/...

  • 腾讯优图常见算法题

    最常见的: 一、 两数之和 二、链表反转 三、环状链表 四、快排 五、合并两个有序链表 六、最大子序和 七、最长上...

  • 链表 【两数相加】

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只...

  • 链表 两数相加

    https://leetcode-cn.com/explore/interview/card/bytedance/...

  • 链表:两数相加

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只...

  • 两数相加——链表

    题目 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个...

  • 链表--两数相加

    目录[https://www.jianshu.com/p/85e18c21317a] 题号[https://lee...

  • algrithrom

    求和问题,双指针解决 done 两数之和 三数之和 最接近三数之和 四数之和 链表反转问题 done 链表反转 链...

  • [LeetCode] 2. Add Two Numbers 题解

    问题描述 给你两个非空链表,分别代表两个非负整数,它们的高低位顺序和链表顺序相反,链表中,每个节点代表一位数,要求...

  • 第三周ARTS

    Algorithmic 用链表将两数相加,之后输出和。https://leetcode-cn.com/proble...

网友评论

      本文标题:两数的和,链表

      本文链接:https://www.haomeiwen.com/subject/bfpubltx.html