题解 | #牛群的能量值#

牛群的能量值

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;
    }
}

全部评论

相关推荐

04-02 16:49
门头沟学院 Java
_bloodstream_:我也面了科大讯飞,主管面的时候听说急招人优先考虑能尽快实习的,我说忙毕设,后面就一直没消息了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务