-->
当前位置:首页 > 题库 > 正文内容

程序填空题:逆转单链表(递归法)

Luz4年前 (2021-05-10)题库951
逆转单链表(递归法)

```c++
#include
using namespace std;
typedef int ElemType;

typedef struct LNode {
ElemType data;
struct LNode *next;
} LNode, *LinkList;


void CreateList(LinkList &L, int n) {
LinkList p, r;
int length;
L = new LNode;
cin >> L->data;
L->next = NULL;
r = L;
length = 1;
while (length p = new LNode;
cin >> p->data;
p->next = NULL;
r->next = p;
r = p;
length++;
}
}

void print(LinkList L)
{
LinkList p;
int flag=1;
p = L;
while (p) {
if(flag)
cout << p->data;
else
cout << " "<< p->data;
flag=0;
p = p->next;
}
}

LinkList reverse(LinkList L)
{
LinkList p;
if(@@[L==NULL||L->next==NULL](2))
return L;
@@[p=reverse(L->next)](2);
L->next->next=L;
L->next=NULL;
@@[return p](2);
}

int main() {
LinkList L;
ElemType e;
int length;
cin >> length;
CreateList(L, length);
L=reverse(L);
print(L);
return 0;
}
```






答案:
第1空:L==NULL||L->next==NULL

第2空:p=reverse(L->next)

第3空:return p

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。