18xue_3

#include<iostream> 
#include<stdlib.h>
using namespace std;
struct LNode
{
    int val;
    LNode* next;
};
LNode *L1=new LNode,*L2=new LNode;
LNode *r1=L1,*r2=L2,*pa,*pb;//尾插法,开始时头和尾结点是同一个
void helper(LNode* L){
	while(L){
		if(L->val%2==0){
			pa=new LNode;
			pa->val=L->val;
			r1->next=pa;
			r1=pa;
		}
		else{
			pb=new LNode;
			pb->val=L->val;
			r2->next=pb;
			r2=pb;
		}
		L=L->next;
    }
    r1->next=NULL,r2->next=NULL;
    L1=L1->next,L2=L2->next;
}
void read(LNode* p){
    while (p)
    {
        cout<<p->val<<" ";
        p=p->next;
    }
    cout<<endl;
}
int main()
{
	LNode* L=new LNode;
	LNode *p,*r=L;
    int a[8]={1,2,3,6,7,8,9,11};
    for(int i=0;i<8;i++){
		//head=(LNode*)malloc(sizeof(LNode));//或者用下面的写法新建一个结点,二选一 
		p=new LNode;
		p->val=a[i];
		r->next=p;
		r=p;
	}
	r->next=NULL;
	L=L->next;
	helper(L);//将单链表分别分为奇数和偶数单链表
    read(L1);
	read(L2);
	read(L);
	return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值