合并链表

来源:互联网 发布:linux proc stat 编辑:程序博客网 时间:2024/06/14 00:50

面试题17:合并两个链表

题目:输入两个递增排序的链表,合并这两个链表并使新的链表依然保持递增排序。链表结点定义如下:

struct ListNode

{

int value;

ListNode* next;

}

这个题目在考研里就有属于比较简单的一类,本来不打算写上来看到答案中采用的递归的写法,代码非常的整洁干净一时心动就写了上来。

ListNode* Merge(ListNode* pHead1,ListNode* pHead2){if(pHead1 == NULL){return pHead2;}if(pHead2 == NULL){return pHead1;}ListNode* pMergeHead = NULL;if(pHead1->value < pHead2->value){pMergedHead = pHead1;pMergedHead->next = Merge(pHead1->next,pHead2);}else{pMergedHead = pHead2;pMergedHead->next = Merge(pHead1,pHead2->next);}return pMergedHead;}

确实递归的代码看起来真的很舒服和简洁。

0 0
原创粉丝点击