首页 > 其他分享 >求有序链表交集

求有序链表交集

时间:2023-11-19 16:44:34浏览次数:42  
标签:p2 p3 p1 交集 next 链表 L2 有序 L1

一、题目

二、我的解答

思想:因为递增有序,所以两个指针依次遍历,这次就不考虑相等的情况了,默认为严格递增。

list* intersection(list* L1, list* L2) {
	if (!L1 || !L2) return NULL;
	list* p1 = L1->next, * p2 = L2->next, * p3 = L1;
	while (p1 && p2) {
		if (p1->value == p2->value) {
			p3->next = p1;
			p3 = p1;
			p1 = p1->next;
			p2 = p2->next;
		}
		else if (p1->value > p2->value)
			p2 = p2->next;
		else
			p1 = p1->next;
	}
	p3->next = NULL;
	free(L2);
	return L1;
}

三、演示

标签:p2,p3,p1,交集,next,链表,L2,有序,L1
From: https://www.cnblogs.com/cony1/p/17842239.html

相关文章

  • 合并有序链表
    一、题目二、代码1.思想:将情况分为三种,大于和小于简单的合并,相等的时候需要额外考虑一些问题哪些问题?1.新表指针如何移动2.两个子表指针如何移动相等的时候,需要考虑新表指针的如何操作,当新表中已经存在,两个子表指针目前所指节点的值,就只需将两个子表中重复的元素略过,......
  • 两两交换链表中的节点
    现在时间是:  2023年11月18日 星期六   农历十月初六  22:08:每天坚持刷Leetcode,遇到有些突然看到就不能想得很清楚的题目,还是需要进行记录一下!Leetcode热题100(学习计划):两两交换链表中的节点,题目信息如下:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节......
  • 206. 反转链表 (精选)
    2023-11-18206.反转链表-力扣(LeetCode)思路:注意leetcode是没有头节点的,只有数据节点1先将指针放到最后,然后从开头取节点,放到此节点后面遍历2遍,不好2引入头节点,头插法可以就用本来的链表/定义一个新的链表3原地反转链表的线迭代(双指针)递归相当于1的思路1简单,就......
  • 数组类算法题——删除有序数组中的重复项
    删除有序数组中的重复项题目:给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为k,你需要做以下事情确保你的......
  • 【HDU 1276】士兵队列训练问题 题解(链表+模拟)
    某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。。。,以后从头开始轮流进行一至二报数、一至......
  • 代码随想录算法训练营第六天 |● 哈希表理论基础 ● 242.有效的字母异位词 ● 349.
    今日学习的文章链接和视频链接https://programmercarl.com/哈希表理论基础.html242.有效的字母异位词varisAnagram=function(s,t){if(s.length!==t.length)returnfalseletmap=newMap();for(letcharofs){if(!map.get(char)){......
  • (链表)16-删除有序链表中重复的元素-b
    1importjava.util.*;23/*4*publicclassListNode{5*intval;6*ListNodenext=null;7*publicListNode(intval){8*this.val=val;9*}10*}11*/12publicclassSolution{13/**14*@paramhead......
  • (链表)10-相交链表
    1/*2publicclassListNode{3intval;4ListNodenext=null;56ListNode(intval){7this.val=val;8}9}*/10publicclassSolution{11publicListNodeFindFirstCommonNode(ListNodepHead1,ListNodepHead2)......
  • (链表)15-删除有序链表中的重复元素-a
    1importjava.util.*;23/*4*publicclassListNode{5*intval;6*ListNodenext=null;7*publicListNode(intval){8*this.val=val;9*}10*}11*/12publicclassSolution{13/**14*@paramhead......
  • 有序数据结构的交与并
    需要注意:1:求并集和交集前,需要将两个数组先进行排序(int或者vector都需要),否则结果有误2:需要定义vector的size,否则可能无法得到结果 vector的并#include<bits/stdc++.h>usingnamespacestd;intmain(){ inta[4]={1,2,3,4};//已经有序,若无序,需要排序! intb[......