输入字符串,建立一个单链表,操作单链表使每相邻的两个字符交换位置

 输入字符串,建立一个单链表,操作单链表使每相邻的两个字符交换位置_第1张图片

 

输入字符串,建立一个单链表,操作单链表使每相邻的两个字符交换位置_第2张图片

题目如上图所示 ,代码如下:

#include 
#include 

using namespace std;

struct linknode{
	char data;
	linknode * next;
};

int main() {
	linknode* head = NULL;
	linknode* tail = NULL;
	string chs;
	cin>>chs;
	for(int i=0;idata=chs[i];
		newNode->next=NULL;
		if(tail==NULL)
			head=tail=newNode;
		else
		{
			tail->next=newNode;
			tail=newNode;
		}
	}
	if(head==NULL) 
		return 0;
	linknode *q=head,*pre=NULL;
	while(q && q->next)
	{
		linknode *p1=q,*p2=q->next;
		q=p2->next;
		p1->next=p2->next;
		p2->next=p1;
		if (pre == NULL) 
			head = p2;
		else		 
			pre->next = p2;
		pre = p1;
	}

	while(head!=NULL){
		cout<data;
		head=head->next;
	}
	cout << endl;
	return 0;
}

积累积累。

你可能感兴趣的:(刷题)