前言
本篇会记录所有关于我对合并链表系列题目的题解,不定期更新
开始
LeetCode 21. 合并两个有序列表
合并链表系列,应该从LeetCode 21. 合并两个有序链表开始说起:
这道题需要掌握链表的基础遍历,通常,我们使用while循环遍历:
while(l1!=null){
// 输出链表节点值
System.out.println(l1.val);
l1 = l1.next;
}
要合并两个有序,长短不一的链表,我们可以先用while循环统一遍历,直到一条链表被遍历完:
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
// res指向一个占位节点
ListNode res = new ListNode(0);
// cur指针用来顺序指向新构建的链表的各个节点
ListNode cur = res;
// 同时遍历两条链表
while(l1!=null && l2!=null){
// 比较两个链表节点值的大小
// 较小的节点值赋予新节点并连接到res链表上
if(l1.val <= l2.val){
cur.next = new ListNode(l1.val);
l1 = l1.next;
}else{
cur.next = new List