题目:已知有两个有序的单链表,其头指针分别为head1和head2,实现将这两个链表合并的函数:
Node* ListMerge(Node *head1,Node *head2)
这个算法很像我们排序算法中的归并排序,只能说“很像”,因为思想是一样的,但是这个与归并排序还是有区别的,区别如下:
1.归并排序是针对有序数组,而这里是有序链表;
2.归并排序排序的时间复杂度为o(nlogn),而这里的时间复杂度最坏情况下为O(m+n),最好的情况下为...
分类:
其他好文 时间:
2014-08-04 17:43:47
阅读次数:
296
直接递归
代码:
#include
#include
using namespace std;
typedef struct listNode{
int key;
struct listNode *pNext;
} * pNode,Node;
void createNode(pNode &pHead){
bool isFirst=true;
int temp;
sc...
分类:
其他好文 时间:
2014-07-30 20:57:14
阅读次数:
174
想起那夕阳下的奔跑,那是我逝去的青春 ----万万没想到我一看到,就觉得很简单,因为就是那个大数相加的思想啊,后来才知道各种情况,调了2个多小时,坑爹,不过leecode测试用例非常好。1.链表合并,跟那个有序链表合并为一个类似,2.合并之后,利用大数相加,超过十进位,最后一个节点要特殊处理,我写....
分类:
其他好文 时间:
2014-07-02 21:05:19
阅读次数:
194
将链表头尾倒置将几个链表合并成一个新的链表,将链表中重复的节点去掉,并按大小排序双向循环链表单向循环链表(约瑟夫循环)多项式相加程序源代码单链表、单向循环链表结点类packagejavab;publicclassNode{intdata;Nodenext;publicNode(intdata){th...
分类:
编程语言 时间:
2014-06-14 19:39:06
阅读次数:
267
题目
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.
方法
有序链表,合并成一个有序链表。
public ListNod...
分类:
其他好文 时间:
2014-06-10 18:13:11
阅读次数:
241
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a link...
分类:
其他好文 时间:
2014-05-23 07:43:23
阅读次数:
246
好多人都是为了找实习、找工作,看看思路,手写下这个问题的代码。如果有机会还是最好真正调试一下,还是有很多细节需要注意的。不多说了,代码记录如下:
Node* Merge(Node *h1,Node *h2)
{
Node *head,*pCurrent,*head1,*head2;
head1 = h1;
head2 = h2;
if(head1==NULL)
retu...
分类:
其他好文 时间:
2014-05-18 02:59:29
阅读次数:
214
九度OJ上AC,采用归并的思想递归实现。
题目描述:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
(hint: 请务必使用链表。)
输入:
输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行为两个整数n和m(0<=n<=1000, 0<=m<=1000):n代表将要输入的第一个链表的元素的个数,m代表将要输入的第二个链表的元素的个数。
下面一行包括n个数t(1<=t<=1000000):代表链表一中的元素。接下来一行包含m个元素,s...
分类:
其他好文 时间:
2014-05-15 03:18:31
阅读次数:
356