题解
合并两个排序的链表
http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337
c语言
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
/**
*
* @param pHead1 ListNode类
* @param pHead2 ListNode类
* @return ListNode类
*/
struct ListNode* Merge(struct ListNode* pHead1, struct ListNode* pHead2 ) {
// write code here
struct ListNode *a= pHead1;
struct ListNode*b= pHead2;
struct ListNode*start2=(struct ListNode*)malloc(sizeof(struct ListNode));
start2->next=NULL;
struct ListNode*start=start2;
if(a==NULL&&b==NULL)
return start2->next;
while(1)
{ if(a==NULL||b==NULL)
break;
struct ListNode *m=start->next=(struct ListNode*)malloc(sizeof(struct ListNode));
int anum=a->val;
int bnum=b->val;
if(anum<=bnum){
m->val=a->val;
a=a->next;
}else{
m->val=b->val;
b=b->next;
}
start=start->next;
}
if(!a){
start->next=b;
}
if(!b){
start->next=a;
}
return start2->next;
}