题解 | #合并两个排序的链表#

合并两个排序的链表

https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
#include <list>
class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
    if(pHead1==nullptr) return pHead2;
	if(pHead2==nullptr) return pHead1;
	if(pHead1->val<pHead2->val) 
	{
      pHead1->next=Merge(pHead1->next,pHead2);
	  return pHead1;
	}
	else{
	  pHead2->next=Merge(pHead2->next,pHead1);
	  return pHead2;
	}
};
};

首先判断特殊情况,某一个为空链表的情况,当然这包括了两者均为空链表的情况。

当phead1的结点值小于phead2的结点值时,将phead1作为新生成链表的头结点,合并phead1剩余链表部分和phead2。

当phead2的结点值小于phead1的结点值时同理。

全部评论

相关推荐

05-10 16:48
门头沟学院 Java
程序员小白条:主要原因,投递太晚了,快手应该早点溜了,你都从去年9月开始的,半年也差不多3月跑路了,这样的话,至少有5个以上的面试机会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务