题目描述
题目链接:https://leetcode.cn/problems/merge-two-sorted-lists/description/
 
思路
-  两个链表都是升序链表,新建一个链表,引入伪头节点作为辅助节点,将各节点添加到伪节点之后,再用一个cur节点指向新链表的末尾 
-  遍历两个链表,对比每个节点值,将更小的链表节点加入到新链表中 
-  如果其中一个链表未遍历完,那就直接加入到新链表后面 
实现代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        ListNode list = new ListNode(); //伪头节点
        ListNode cur = list; // cur 指向新链表的末尾
        while (list1 != null && list2 != null) {
            if (list1.val < list2.val) {
                cur.next = list1; // 把 list1 加到新链表中
                list1 = list1.next;
            } else { 
                cur.next = list2; // 把 list2 加到新链表中
                list2 = list2.next;
            }
            cur = cur.next;
        }
        cur.next = list1 != null ? list1 : list2; // 拼接剩余的链表
        return list.next;
    }
}
 
                   
                   
                   
                   
                             本文介绍如何使用Java实现合并两个已排序的链表,通过伪头节点和迭代方式,确保新链表保持升序。主要展示了Solution类中的mergeTwoLists方法。
本文介绍如何使用Java实现合并两个已排序的链表,通过伪头节点和迭代方式,确保新链表保持升序。主要展示了Solution类中的mergeTwoLists方法。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
                     
              
             
                   419
					419
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
					 
					 
					


 
            