当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

3_两个链表的合并,去除重复节点

发表于: 2013-11-01   作者:375809600   来源:转载   浏览:
摘要: struct student{ int num; struct student *pnext; }; //首先将第二个链表的最后一个节点找到,然后将第一个链表的每一个节点依次跟第二个链表比较,如果第二个 //链表没有,就放到第二个链表的末尾 Stu *mergeTwoList(Stu *head,Stu *head1){ Stu *last=head->p
struct student{
	int num;
	struct student *pnext;

};
//首先将第二个链表的最后一个节点找到,然后将第一个链表的每一个节点依次跟第二个链表比较,如果第二个
//链表没有,就放到第二个链表的末尾



Stu *mergeTwoList(Stu *head,Stu *head1){
	Stu *last=head->pnext;
	Stu *head1_end=head1->pnext;
	Stu *last1=head1->pnext;
	Stu *head_pre=head->pnext;//循环保存last的前一个节点
	int flag=0;//初始化假设没有相等的
	while (head1_end->pnext!=NULL)
	{

		head1_end=head1_end->pnext;//用来保存head1的最后一个节点
	}
	while (last!=NULL)
	{
			last1=head1->pnext;//每次外层循环一次,就把里面的复位
		while (last1!=NULL)
		{
		
			if (last->num==last1->num)
			{
				flag=-1;
				break;
			}
			last1=last1->pnext;
		}
		if (flag==0)//没有相同的,加到
		{
          head_pre->pnext=last->pnext;
		  head1_end->pnext=last;
		  head1_end=head1->pnext;//往后一个节点,为了方便后面的添加
		  last->pnext=NULL;//将最后一个节点指向的下一个节点制为空
		}
		  head_pre=last;//记录head链表的前一个节点
		 last=last->pnext;
	}
	return head1;
}

 

3_两个链表的合并,去除重复节点

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如下图
每日一贴,今天的内容关键字为链表节点 1 数组合并排序 1.1 合并两个已排序好的数组 需要额定的存储
示例 思路一:两个链表同时逐个遍历 参考代码 ListNode* combinList(ListNode *head_1, ListNode *h
问题:现有LA与LB两个链表,已升序排列。将LA与LB合并后也按升序排列. 算法1:在LB中分别取出它的结
标题是我面试的时候使用的一道题目,结果是是使用最笨的方式——使用便利,但是面试官教我使用Set这
标题是我面试的时候使用的一道题目,结果是是使用最笨的方式——使用便利,但是面试官教我使用Set这
标题是我面试的时候使用的一道题目,结果是是使用最笨的方式——使用便利,但是面试官教我使用Set这
标题是我面试的时候使用的一道题目,结果是是使用最笨的方式——使用便利,但是面试官教我使用Set这
题目:输入两个链表,找出它们的第一个公共子节点。 直观做法:在第一个链表上顺序遍历每个节点,每
有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一个函数将两链表中数值相同的节点
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号