题解 | #牛群的能量值#
牛群的能量值
https://www.nowcoder.com/practice/fc49a20f47ac431981ef17aee6bd7d15
知识点
链表,模拟
解题思路
将两个链表对应节点的值相加形成一个新的节点,节点下移一位直达两个链表都为空,如果某时只有一个链表不为空那就只加它一个。
注意需要判断相加节点链表的值是否产生进位,在下一次节点值相加时需要加上进位的值。
在链表都移动到末尾时还需要判断进位是否为1,是则还需要加一个值为1的节点在末尾。
Java题解
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 ans = new ListNode(0); ListNode next = ans; int carry = 0; //进位 while(l1 != null || l2 != null){ int val = carry; if(l1 != null) { val += l1.val; l1 = l1.next; } if(l2 != null){ val += l2.val; l2 = l2.next; } carry = val >= 10 ? 1 : 0; val = val % 10; ListNode curr = new ListNode(val); next.next = curr; next = next.next; } //进位不为0 if(carry != 0){ next.next = new ListNode(1); } return ans.next; } }