LeetCode代码练习-21题 合并两个有序链表

合并两个有序链表

先来看一下题目
在这里插入图片描述
比较简单的暴力想法就是遍历两个链表然后每个元素去比较,较小的就存到新的链表中。思路比较简单但是比较难的是链表该怎么去书写
话不多说直接上代码。

// C++;
// 
class Solution{
	public ListNode* mergeTwoLists(ListNode *list,ListNode* list2){
	if(list1 == nullptr){
	return list2; //如果其中一个链表为空,直接返回另一个链表
	}
	if(list2 == nullptr){
	return list1;
	}
	ListNode* node = new ListNode();
	ListNode* temp = node;
	while(list1 != nullptr && list2 != nullptr){
		if(list2->val >= list1->val){
			temp->next = list1;
			list1 = list1->next;
			}
			else if(list2->val < list1->val)
				{
					temp->next = list2;
					list2 = list2->next;
				}
			temp=temp->next;//node后移一位,指向尾节点
			if(list1 == nullptr){
			//当某条链表结束了,就让node->next指向另一条链表的剩余
			temp->next = list2;
			return node->next;
			}
			if(list2 == nullptr){
				temp->next = list1;
				return node->next;
			}
		}
	return node.next;
	}
}


	

在这里插入图片描述
最后提交通过
这个题目逻辑简单但比较考验对链表的使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值