说明:这篇文章是学习交流,转载请注明出处。欢迎转载! 题目:已知有两个有序的单链表,其头指针分别为head1和head2。实现将这两个链表合并的函数: Node* ListMerge(Node *head1,Node *head2) 这个算法非常像我们排序算法中的归并排序。仅仅...
分类:
编程语言 时间:
2015-08-25 21:08:56
阅读次数:
1416
题目
输入两个递增排序的链表, 合并这两个链表并使新链表中的结点仍然是按照递增排序的.ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
if (pHead1 == NULL)
return pHead2;
else if (pHead2 == NULL)
return pHe...
分类:
编程语言 时间:
2015-08-16 19:56:54
阅读次数:
142
题目:输入两个递增排序的链表,合并这两个链表,并使新链表中的结点仍然是按照递增排序的。
第一种思维:合并两个排序的链表,类似于合并两个排序数组,所不同的仅是一个用链表保存数据,一个用数组保存数据。
算法如下:(下面的算法前提是:头结点 不是 链表的第一个数据节点。)
/**方法一:合并两个排序链表,使用了新创建的链表来保存,没有改动两个原始链表*/
ListNode *merge_tow...
分类:
编程语言 时间:
2015-08-11 01:31:00
阅读次数:
176
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入图中的链表1和链表2,则合并之后的升序链表3所示。
这是一个经常被各公司采用的面试题。在面试过程中,我们发现应聘者最容易犯两个错误:一是在写代码之前没有对合并的过程想清楚,最终合并出来的链表要么中间断开要么并没有递增排序;二是代码的鲁棒性方面存在问题,程序一旦有特殊的输入(如空链表)就会崩溃。接下...
分类:
编程语言 时间:
2015-08-01 22:04:20
阅读次数:
146
对于两个有序链表合并成一个新的有序链表的代码很简单,但是要注意一些测试用例:比如说一个为空链表;两个链表不一样长,肯定最后有一个链表要单独的挂到结果链表中去的。 ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1 == NULL.....
分类:
其他好文 时间:
2015-07-28 17:55:25
阅读次数:
133
题目:输入两个递增的排序的链表,合并这两个链表并使新链表中的节点仍然是按照递增排序的。例如链表1链表2合并为链表3.1 List1:1->3->5->723 List2:2->4->6->84 5 List3:1->2->3->4->5->6->7->8链表结点定义如下:1 struct ListN...
分类:
编程语言 时间:
2015-07-23 23:23:47
阅读次数:
170
书上的题目,带头链表&不带头链表不带头链表为空时,判断:head==NULL;带头链表为空是,判断head->next=NULL;但对于链表的插入、删除会有不同,不带头链表对于头节点需要单独处理,而对于带头链表则不需要 1 #include 2 using namespace std; 3 typ....
分类:
其他好文 时间:
2015-07-20 21:24:12
阅读次数:
96
Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
思路:对两个已排序的单链表合并。算法上比较简单,与归并排...
分类:
编程语言 时间:
2015-07-06 21:48:48
阅读次数:
166
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的...
分类:
编程语言 时间:
2015-06-29 10:04:52
阅读次数:
115
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入图中的链表 1 和链表 2,则合并之后的升序链表如链表 3 所示。链表结点定义如下:typedef struct Node{ int m_nValue; struct Node *m_pNext;...
分类:
编程语言 时间:
2015-06-20 14:18:12
阅读次数:
169