递增输出链表结点,删除重复结点

12)按递增次序输出链表结点

#include "stdafx.h"
#include<iostream>
using namespace std;
typedef struct node
{
	int data;
	struct node *next;
}Listnode,*LinkList;
int _tmain(int argc, _TCHAR* argv[])
{
	return 0;
}
void reverse(LinkList &La)
{
	while(La->next)
	{
		LinkList pre=La;
		LinkList r=pre;//r为辅助指针记录前驱
		LinkList p=pre->next;		
		while(p)
		{
			if(p->data<pre->next->data)
				pre=r;//找到当前最小值的前驱
			r=p;p=p->next;
		}
		cout<<pre->next->data;
		LinkList u=pre->next;
		pre->next=u->next;
		free(u);//删除最小值结点
	}
	free(La);
}

 13)删除带结点的单链表的重复元素

#include "stdafx.h"
#include<iostream>
using namespace std;
typedef struct node
{
	int data;
	struct node *next;
}Listnode,*LinkList;
int _tmain(int argc, _TCHAR* argv[])
{
	return 0;
}
void reverse(LinkList &La)
{
	LinkList p=La->next;//工作指针;
	while(p)
	{
		LinkList q=p->next,r=p;
		while(q)
		{			
			if(q->data==p->data)
			{
				LinkList u=q;
				r->next=u->next;
				free(u);
				q=r->next;//注意不要断链
			}
			else
			{
			r=q;q=q->next;
			}
		}
		p=p->next;
	}
}
原文地址:https://www.cnblogs.com/tgkx1054/p/2620828.html