题解 | #牛群的能量值#

牛群的能量值

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) {
        ListNode pre = new ListNode(-1);
        ListNode cur = pre;
        int up = 0; // 进位
        while (l1 != null && l2 != null) {
		    // 相加和
            int val = (l1.val + l2.val + up);
		    // 更新进位
            up = val >= 10 ? 1 : 0;
		    // 节点值
            cur.next = new ListNode(val % 10);
		    // 继续遍历链表
            cur = cur.next;
            l1 = l1.next;
            l2 = l2.next;
        }
	    // 遍历剩余的链表
        while (l1 != null) {
            int val = l1.val + up;
            up = val >= 10 ? 1 : 0;
            cur.next = new ListNode(val % 10);
            cur = cur.next;
            l1 = l1.next;
        }
        while (l2 != null) {
            int val = l2.val + up;
            up = val >= 10 ? 1 : 0;
            cur.next = new ListNode(val % 10);
            cur = cur.next;
            l2 = l2.next;
        }
		// 链表遍历结束,进位为1,补充一位
        if (up == 1) {
            cur.next = new ListNode(1);
        }
        return pre.next;
    }
}

本题考查的是链表的遍历和加法运算,设置一个进位,每次遍历新节点都要将进位加到新值中,然后更新进位,其实就是很简单的加法运算,最后要注意的就是当链表遍历结束的时候,如果进位为1,说明需要新增一个节点

全部评论

相关推荐

Java抽象带篮子:难蚌,点进图片上面就是我的大头😆
点赞 评论 收藏
分享
尊尼获获:闺蜜在哪?
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务