剑指offer25 . 合并两个排序的链表 P145

mac2025-07-16  5

剑指offer25 . 合并两个排序的链表 P145

每次比较两个链表表头,那个小,哪个就是当前节点mergeHead,然后把剩下的链表继续合并,找这个mergeHead的下一个节点。

ListNode* mergeSortedLinkedList(ListNode *head1, ListNode *head2) { // 任一个链表比较完,把剩下的直接加到当前合并的链表尾 if (head1 == NULL) return head2; if (head2 == NULL) return head1; ListNode *mergeHead = NULL; // 每次选出来两个链表头里最小的作为上一个节点的next if (head1 -> key < head2 -> key) { mergeNode = head1; mergeNode -> next = mergeSortedLinkedList(head1 -> next, head2); } else { mergeNode = head2; mergeNode -> next = mergeSortedLinkedList(head1, head2 -> next); } return mergeNode; }
最新回复(0)