题解 | #牛群的能量值#java

牛群的能量值

https://www.nowcoder.com/practice/fc49a20f47ac431981ef17aee6bd7d15

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param l1 ListNode类
     * @param l2 ListNode类
     * @return ListNode类
     */
    public ListNode addEnergyValues (ListNode l1, ListNode l2) {
        // write code here

        ListNode dummy = new ListNode(-1);
        ListNode curr = dummy;
        int carry = 0;

        while (l1 != null || l2 != null) {
            int x = (l1 != null) ? l1.val : 0;
            int y = (l2 != null) ? l2.val : 0;

            int sum = x + y + carry;
            carry = sum / 10;
            int digit = sum % 10;

            curr.next = new ListNode(digit);
            curr = curr.next;

            if (l1 != null) l1 = l1.next;
            if (l2 != null) l2 = l2.next;
        }

        if (carry > 0) {
            curr.next = new ListNode(carry);
        }

        return dummy.next;
    }
}

我们首先定义了链表节点的类 ListNode。然后创建了一个方法 addTwoNumbers,用于逆序相加两个链表表示的数字。

addTwoNumbers 方法中,我们创建了一个哑节点 dummy,用来保存结果链表的头节点。然后使用指针 curr 指向当前节点。

通过循环遍历两个链表的节点,按照逆序方式依次相加。同时使用变量 carry 来记录进位值。

具体操作如下:

  • 如果当前节点非空,则取当前节点的值作为加数;否则,视为加数为 0。
  • 同样地,我们对第二个链表也进行同样的操作。
  • 将两个节点的值以及上一次的进位值相加,得到当前位的和以及新的进位值。
  • 将和的个位数作为结果链表的新节点,并将指针 curr 指向该节点。
  • 更新指针 l1 和 l2 到下一个节点。
  • 重复上述步骤,直到两个链表全部遍历完。

最后,如果还存在进位值,需要额外添加一个节点来表示进位。

返回哑节点 dummy 的下一个节点,即为表示和的链表的头节点。

该题知识点包括:

  • 链表是一种常见的数据结构,它由节点组成,每个节点包含一个值和一个指向下一个节点的指针。
  • 逆序相加:题目要求对两个链表进行逆序相加,即从链表的末尾开始相加。
  • 进位处理:在相加时,需要考虑进位的情况。如果两个节点的值相加超过了10,需要将进位值加到下一位的计算中。
  • 哑节点:哑节点是一个辅助节点,通常用来保存结果链表的头节点,在遍历链表时可以方便地进行操作。
  • 循环遍历链表:通过使用循环来遍历链表的节点,可以依次对两个链表的节点进行相加操作。
  • 全部评论

    相关推荐

    01-15 13:45
    门头沟学院 Java
    牛客92772631...:boss招聘挂岗位是要花钱的,花了钱不挂白不挂,别那么焦虑,但是也要做好跳槽的准备
    找实习记录
    点赞 评论 收藏
    分享
    评论
    点赞
    收藏
    分享

    创作者周榜

    更多
    牛客网
    牛客网在线编程
    牛客网题解
    牛客企业服务