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

合并两个排序的链表

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

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
		if(pHead1 == NULL)
		    return pHead2;
		if(pHead2 == NULL)
		    return pHead1;
        ListNode *p1,*p2,*tail;
		p1 = pHead1;
		p2 = pHead2;
		//将pHead作为新链表的头结点
		if(pHead1->val>pHead2->val)
		{
			pHead1 = pHead2;
			p2 = p2->next;
		}
		else
		{
			p1 = p1->next;
		}
		tail = pHead1;
		ListNode * temp;
		while(p1&&p2)
		{
			if(p1->val>p2->val)
			{
				temp = p2->next;
				tail->next = p2;
				tail = p2;
				p2 = temp;
			}
			else
			{
				temp = p1->next;
				tail->next = p1;
				tail = p1;
				p1 = temp;
			}
		}
		if(p1) 
		{
			tail->next = p1;
		}
		if(p2)
		{
			tail->next = p2;
		}
		return pHead1;
    }
};

全部评论

相关推荐

01-30 22:03
门头沟学院 Java
用微笑面对困难:我滴妈,【俩月】【实习】【主管】仨debuff吃满了,独立设计开发的项目写了绝大占比的运营板块,你独立开发,那维护、问题复盘、日志更新、bug、策划书全是自己整的? 不建议写那么大,可以从小出发更容易
点赞 评论 收藏
分享
03-03 19:02
已编辑
东华理工大学 Node.js
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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