题解 | 合并两群能量值 | Java
合并两群能量值
https://www.nowcoder.com/practice/d728938f66ac44b5923d4f2e185667ec
考察链表的合并。
先解释一下程序里的非递增:
同时遍历两个链表,将他们的当前值进行比较,值比较大的就接到res链表上。
temp初始去指向res,temp不断往后加上两个链表中的当前节点的较大的节点,直到两个链表发生遍历结束的情况,这就是9行while循环条件的由来。
当发生链表遍历结束的时候,因为是非递增排序,所以直接将另一个没遍历完的链表接到temp后面即可。注意返回的是res这个新的链表的头结点的next(首元结点)
import java.util.*;
public class Solution {
public ListNode mergeEnergyValues (ListNode l1, ListNode l2) {
// write code here
ListNode res = new ListNode(-1);
ListNode temp = res;
while(l1!=null&&l2!=null){//两个链表都还没有遍历完的时候
if(l1.val>=l2.val){
temp.next = l1;
l1 = l1.next;//更新l1的指向
}else{
temp.next = l2;
l2 = l2.next;//更新l2的指向
}
temp = temp.next; //注意更新temp
}
if(l1!=null){ //说明l2遍历完了
temp.next = l1;
}
if(l2!=null){ //说明l1遍历完了
temp.next = l2;
}
return res.next;
}
}
#面试高频TOP202#
查看26道真题和解析

realme公司福利 338人发布