程序填空题:单链表结点和(递归法)
单链表结点和。
```c++
#include
using namespace std;
#define OK 1
#define ERROR 0
typedef int ElemType;
typedef struct LNode {
ElemType data;
struct LNode *next;
} LNode, *LinkList;
void CreateList(LinkList &L, int n) {
LinkList p;
int length=1;
L = new LNode; //不带头结点,第一个结点
cin>>L->data;
L->next = NULL;
while (length p = new LNode;
cin >> p->data;
p->next = L->next;
L->next = p;
length++;
}
}
int Sum(LinkList L)
{if (@@[L==NULL](2))
return 0;
else
return(@@[L->data+Sum(L->next)](2));
}
int main() {
LinkList L;
ElemType e;
int length;
cin >> length;
CreateList(L,length);
int x=Sum(L);
cout< return 0;
}
```
### 输入样例:
第一行输入一个数n,第二行输入n个数。
```in
12
19 14 23 1 68 20 84 27 55 11 10 79
```
### 输出样例:
输出结点和。
```out
411
```
答案:
第1空:L==NULL
第2空:L->data+Sum(L->next)
```c++
#include
using namespace std;
#define OK 1
#define ERROR 0
typedef int ElemType;
typedef struct LNode {
ElemType data;
struct LNode *next;
} LNode, *LinkList;
void CreateList(LinkList &L, int n) {
LinkList p;
int length=1;
L = new LNode; //不带头结点,第一个结点
cin>>L->data;
L->next = NULL;
while (length
cin >> p->data;
p->next = L->next;
L->next = p;
length++;
}
}
int Sum(LinkList L)
{if (@@[L==NULL](2))
return 0;
else
return(@@[L->data+Sum(L->next)](2));
}
int main() {
LinkList L;
ElemType e;
int length;
cin >> length;
CreateList(L,length);
int x=Sum(L);
cout<
}
```
### 输入样例:
第一行输入一个数n,第二行输入n个数。
```in
12
19 14 23 1 68 20 84 27 55 11 10 79
```
### 输出样例:
输出结点和。
```out
411
```
答案:
第1空:L==NULL
第2空:L->data+Sum(L->next)