用C++实现含头结点的单链表,然后实现单链表的两个结点交换位置。
注意不能简单交换两个结点包含数据,必须通过修改指针来实现两个结点的位置交换
交换函数定义可以参考:
swap(int pa, int pb) //pa和pb表示两个结点在单链表的位置序号
swap (ListNode * p, ListNode * q) //p和q表示指向两个结点的指针
#include<iostream>
using namespace std;
#define ok 0
#define error -1
class ListNode{
public:
int data;
ListNode* next;
ListNode(){
next = NULL;}
};
class LinkList{
public:
ListNode* head;
int len;
LinkList(){
head = new ListNode();
len =0;
}
~LinkList(){
ListNode *p,*q;
p = head;
while(p != NULL){
q=p;
p=p->next;
delete q;
}
len = 0;
head = NULL;
}