【题目】输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是按照递增排序的。【分析】合并单链表,需要找到头结点,对比两个链表头结点后,确定头结点,再确定头结点下一个结点,循环递归的如前面一样操作确定每个结点位置,同时考虑边界条件,如果两个链表为空,则肯定无需合并了,就是空链表,如果一个链表为空,另一个不为空,则返回不为空的链表。具体分析流程可以看下面的例子:【测试代码】#include<s...
分类:
编程语言 时间:
2015-06-09 11:57:03
阅读次数:
141
这是我今天笔试的一道题目,总的来说还是让人较为满意。...
分类:
编程语言 时间:
2015-03-02 19:09:42
阅读次数:
140
题目:合并两个已经排序好的链表
方法1:
两个链表
比如链表1: 1->3->5->7->9
链表2: 2->4->6->8->10
跟我们合并两个数组一样,链表1的头结点 和链表2的头节点比较,如果链表1头节点的值大于链表2头接点的值,
那么链表2的头结点为合并链表的头结点,那么链表1的头节点继续和链表2的第二个节点(剩余链表2的头结点)
作比...
分类:
编程语言 时间:
2014-12-05 12:46:52
阅读次数:
175
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。链表的定义如下:structListNode
{
intm_nValue;
ListNode*m_pNext;
};分析:本题考查的是大量指针的编程问题和程序鲁棒性,比如输入空指针情况。解法如下:ListNode*Merge(ListNode*pHe..
分类:
编程语言 时间:
2014-11-28 06:37:02
阅读次数:
196
以前做过合并数组,这次是合并链表,写起来很快,第一次提交,忘记new一个listNode的时候传参数,导致编译错误,修改完这个错误后就没问题了,代码因该是很简单的。需要注意的是,凡是sorted的,都是从小到大排列,另外leetcode上面的链表都没有尾巴,便利的时候需要注意。 1 /** 2 *....
分类:
其他好文 时间:
2014-11-09 00:59:17
阅读次数:
164
参考别人的,合并代码经过修改,个人觉得这种比较容易理解#includeusing namespace std;typedef int ElemType;//两个递增的链表合并成递增的链表。typedef struct LNode{ ElemType data; struct LNode *next;...
分类:
其他好文 时间:
2014-10-21 21:29:25
阅读次数:
191
//单链表的合并
//链表合并
//两个链表必须是有序的
#define Maxsize 5
typedef int elemtype;
typedef struct linklist
{
elemtype data;
struct linklist *next;
}Linklist;
//建立链表1
Linklist *CreateList1 ()
...
分类:
其他好文 时间:
2014-08-11 21:25:52
阅读次数:
346
Sort a linked list in O(n log n) time using constant space complexity.思路:使用O(nlogn)时间复杂度和常数空间复杂度,我们想到可以用归并排序。1)找到链表中间位置2)将两个链表按序合并链表3)对所给链表进行整体的归并排序/*...
分类:
其他好文 时间:
2014-06-27 00:22:37
阅读次数:
303
每天一个小算法还是有点没时间,尽量抽出时间写一写。今天是合并有序的链表,对单链表有点忘了,尤其是指针指来指去的,有点晕,幸好基础还算好,想了想还是能想回来。代码使用随机数函数生成一个链表,然后对链表排序,最后合并链表并打印,删除链表的函数于算法无关紧要,所以未实现^_^。在Linux/g++下编译运...
分类:
其他好文 时间:
2014-06-16 09:07:08
阅读次数:
216