题解 | #牛牛的链表交换#

牛牛的链表交换

https://www.nowcoder.com/practice/0e009fba6f3d47f0b5026b5f8b0cb1bc

#include<stdio.h>
#include<stdlib.h>
typedef struct Node {
	int data;
	Node* next;
}Node;
Node* head;
void insert(int x) {
	Node* temp = new Node();
	temp->data = x;
	temp->next = NULL;
	Node* temp1 = head;
	if(head==NULL){
		head=temp;
		return;
	}
	while (temp1->next != NULL)
		temp1 = temp1->next;
	temp1->next = temp;
}
void print() {
	Node* temp = head;
	while (temp != NULL) {
		printf("%d ", temp->data);
		temp = temp->next;
	}
}
void swap(){
	Node*p1=head; 
	Node*p2=p1->next;
	
	head=p2;
	p1->next=p2->next;
	p2->next=p1;
	
	
	Node*pn=NULL;pn=head;
	Node*pn_1=NULL;pn_1=head;
	Node*pn_2=NULL;pn_2=head;
	while(pn->next!=NULL){
		pn=pn->next;
	}
	while(pn_1->next->next!=NULL){
		pn_1=pn_1->next;
	}
	while(pn_2->next->next->next){
		pn_2=pn_2->next;
	}
	pn_2->next=pn;
	pn->next=pn_1;
	pn_1->next=NULL;
	
}
int main() {
	head = NULL;
	int n, x;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d", &x);
		insert(x);
	}
	swap();
	print();
	return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务