合并两个有序单链表C++
2016-09-07 23:02
225 查看
/* Author: Victor LV Date: 2016-9-1 11:20 Description: C++ list merge(sort) */ /** * C++:将两个升序排列的链表合并成一个升序排列的链表(不开辟新的链表,直接将原链表重新组合) * 输入:两个list的头指针 * 返回:新的list头指针 * 注意别让链表断了找不到下一个节点,在切断原指向之前需要先让一个指针跳到下一级 */ ListNode* find(ListNode *head1, ListNode *head2) { if(head1 == NULL || head2 == NULL) return NULL; ListNode *newHead = NULL; ListNode *p1 = head1; ListNode *p2 = head2; if(head1->value <= head2->value) { newHead = head1; p1 = p1->next; } else { newHead = head2; p2 = p2->next; } ListNode *ptemp = newHead; while(p1 != NULL && p2 != NULL) { if(p1->value <= p2->value) { ptemp->next = p1; p1 = p1->next; } else { ptemp->next = head2; p2 = p2->next; } } while(p1 != NULL) { ptemp->next = p1; p1 = p1->next; } while(p2 != NULL) { ptemp->next = p2; p2 = p2->next; } return newHead; }
相关文章推荐
- c++ 创建有序单链表,以及两个有序单链表合并
- LeetCode 21. Merge Two Sorted Lists 合并两个有序单链表 C++
- 3.两个有序单链表合并为一个有序的单链表
- C++合并两个有序的二进制文件
- 将两个有序单链表合并
- 数据结构 — 1. 两个非递减有序单链表合并为非递增有序单链表
- 输入两个数列,分别以某数为结束标志,分别生成递增有序单链表;再将这两个表合并为一个递增有序单链表,输出表中各结点的值
- Leetcode:Merge Two Sorted Lists 合并两个有序单链表
- 剑指offer刷题之c++实现的合并两个有序的链表
- 合并两个有序单链表,使得合并后的链表仍然有序
- 两个有序单链表的合并
- 两个有序单链表的合并
- 合并两个有序单链表
- 【C++】合并两个排序的链表,要求合并后仍然是有序的
- 合并两个单链表为递减有序的单链表
- 微软暑期实习笔试题 合并两个有序单链表
- 非递减合并两个有序单链表
- 9、单链表的合并,两个有序单链表,合并为一个有序链表。
- 合并两个有序单链表
- 基于单链表的两个非递减有序表的合并