链表公共元素

原题:给定两个降序链表,找出其公共元素

样例输入:
6,5,4,3,2,1
6,5,3,2,1
样例输出:
6,5,3,2,1

思路:分别定义两个指针i,j 指向两个表头,逐一比较,留下相同的元素

#include<stdio.h>
#include <string.h>

#define N 100

int *find_common_sequence(int a[],int b[],int m,int n){
	int p=0,q=0,cnt=0;
	if(m==0 || n==0){
		return NULL;
	}

	int r = m>n?m:n;
	int res[r];
	memset(res,0,sizeof(int)*r);

	
	while(p<m && q<n){
		if(a[p] == b[q]){
			res[cnt] = a[p];
			cnt++;
			p++;
			q++;
		}
		else if(a[p]>b[q]){
			p++;
		}
		else{
			q++;
		}
	}
	printf("%d\n",cnt);
	for(int i=0;i<cnt;i++)
		printf("%d ",*(res+i));
	return res;
}


int main()
{
	int  list_a [N] = {6,5,4,3,2,1};
	int list_b[N] = {6,5,3,2,1};
//	memset(list_a,0,sizeof(int)*N);
//	memset(list_b,0,sizeof(int)*N);
	
//	int a=0,count=0;
//	while(scanf("%d",&a)!=EOF)
//		list_a[count] = a;
//		count++;
//	count = 0;
//	while(scanf("%d",&a)!=EOF)
//		list_b[count] = a;
//		count++;
//		
	int *res = find_common_sequence(list_a,list_b,6,5);
//	for(int i=0;i<5;i++)
//		printf("%d ",*(res+i));
	
	return 0;
 } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值