题解 | #合并两群能量值#

合并两群能量值

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

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 mergeEnergyValues (ListNode l1, ListNode l2) {
        ListNode pre = new ListNode(-1);
        ListNode cur = pre;
        while (l1 != null && l2 != null) {
            int val;
            if (l1.val >= l2.val) {
                val = l1.val;
                l1 = l1.next;
            } else {
                val = l2.val;
                l2 = l2.next;
            }
            cur.next = new ListNode(val);
            cur = cur.next;
        }
        cur.next = l1 == null ? l2 : l1;
        return pre.next;
    }
}

本题考查的依然是链表的遍历,类似与合并有序数组,使用两个指针 l1 和 l2 同时遍历节点:

  • l1.val >= l2.val,取 l1 节点,l1 指针向后移动,l2 指针不动
  • l1.val < l2.val,取 l2 节点,l2 指针向后移动,l1 指针不动
  • 当某一个指针遍历的末尾时,直接取另一个节点即可
全部评论

相关推荐

10-17 10:05
已编辑
北华大学 全栈开发
牛客872465272号:掉头发了哥
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务