链表算法之【合并两个有序链表】
目录
LeetCode-21题
LeetCode-21题
将两个升序链表合并成一个新的升序链表并返回
class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {if (list1 == null)return list2;if (list2 == null)return list1;ListNode dummyHead = new ListNode();ListNode curr = dummyHead;// 双指针ListNode p1 = list1;ListNode p2 = list2;while (p1 != null && p2 != null) {// 链入节点值较小的节点if (p1.val < p2.val) {curr.next = p1;p1 = p1.next;} else {curr.next = p2;p2 = p2.next;}curr = curr.next;}// 处理剩余节点if (p1 != null)curr.next = p1;if (p2 != null)curr.next = p2;return dummyHead.next;}private static class ListNode {int val;ListNode next;ListNode() {}ListNode(int val) {this.val = val;}ListNode(int val, ListNode next) {this.val = val;this.next = next;}}
}