输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 1 /* 2 struct ListNode { 3 int val; 4 struct ListNode *next; 5 ListNode(int x) : 6 ...
分类:
编程语言 时间:
2015-08-27 00:10:42
阅读次数:
241
题目
输入两个递增排序的链表, 合并这两个链表并使新链表中的结点仍然是按照递增排序的.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
题目1519:合并两个排序的链表题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。(hint: 请务必使用链表。)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为两个整数n和m(0 2 #include 3 u.....
分类:
编程语言 时间:
2015-08-06 11:03:26
阅读次数:
119
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入图中的链表1和链表2,则合并之后的升序链表3所示。
这是一个经常被各公司采用的面试题。在面试过程中,我们发现应聘者最容易犯两个错误:一是在写代码之前没有对合并的过程想清楚,最终合并出来的链表要么中间断开要么并没有递增排序;二是代码的鲁棒性方面存在问题,程序一旦有特殊的输入(如空链表)就会崩溃。接下...
分类:
编程语言 时间:
2015-08-01 22:04:20
阅读次数:
146
题目:输入两个递增的排序的链表,合并这两个链表并使新链表中的节点仍然是按照递增排序的。例如链表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
链表常见题型:
1.找到单链表的倒数第k个节点。
2.删除单链表中的某个结点(O(1))。
3.反转链表。
4.两个链表的第一个公共结点。
5.有环链表返回环路的开头节点(及判断是否有环)。
6.合并两个排序的链表。
7.删除链表中重复的结点。...
分类:
编程语言 时间:
2015-07-22 00:10:20
阅读次数:
279
当代码试图访问空指针指向的内存时程序就会崩溃,从而导致鲁棒性问题。所以要对空链表单独处理。
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
if (pHead1 == NULL)
return pHead2;
else if (pHead2 == NULL)
return pHead1;
ListNode* pMergedH...
分类:
编程语言 时间:
2015-07-08 19:01:19
阅读次数:
132
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的...
分类:
编程语言 时间:
2015-06-29 10:04:52
阅读次数:
115
思路: 比较两个链表端点值的大小,通过递归的方式排列。 1 #include 2 using namespace std; 3 4 struct ListNode 5 { 6 int val; 7 ListNode *next; 8 ListNode(int v = 0...
分类:
编程语言 时间:
2015-06-22 16:11:07
阅读次数:
123