知识点:链表
对于两个链表来说,一共需要考虑三种情况:
1.两个链表节点都为空,返回null
2.两个链表节点都不为空,判断两个节点的val,取较大值作为新节点的值,取该链表节点的后继节点,重复该步骤
3.一个链表节点不为空,则直接取该节点的val,使用该节点的后继节点,重复该步骤
直至两个链表的节点都为空时,完成两个链表的遍历。
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 mergeEnergyValues (ListNode l1, ListNode l2) {
// write code here
if(l1 == null && l2 == null) {
return null;
}
ListNode node = new ListNode(-1);
if(l2 == null || l1 != null && l2 != null && l1.val >= l2.val) {
node.val = l1.val;
node.next = mergeEnergyValues(l1.next, l2);
}else if(l1 == null || l1 != null && l2 != null && l2.val > l1.val){
node.val = l2.val;
node.next = mergeEnergyValues(l1, l2.next);
}
return node;
}
}



京公网安备 11010502036488号