示例:
交换前链表的顺序 交换后链表的顺序
4→5→3→1→2 ==> 5→3→1→4→2
1 ==> 1 (链表仅含一个元素)
2→1 ==>1→2
==> (链表为空)
C/C++:
链表节点定义为:
struct node {
struct node *next;
int value;
};
struct node *swap(struct node *list);
注意点和要求如下:
1. swap函数要求对节点的指针/引用进行操作(不得创建任何新的链表节点)
2. 不得使用任何库函数/API,如需使用类似功能, 请自行实现
3. 不得将链表转化为其他类型数据结构再进行交换,如数组等
#include<iostream>
#include<stdlib.h>
using namespace std;
struct node
{
struct node *next;
int value;
};
node* CreateListNode(int value)//链表中的节点建立
{
if(value==NULL)
return NULL;
node* pNode = (node*)malloc(sizeof(node));
pNode->value = value;
pNode->next = NULL;
return pNode;
}
void ConnectNodes(node* pCu