FDS-Exercise

Hare Fuyukawa Lv2

0 写在前面

第一次quiz有点依托,这里总结一下各种练习题

#1 逆转链表

Problem
1
2
3
4
5
6
7
8
typedef struct Node *PtrToNode;
typedef PtrToNode List;
typedef PtrToNode Position;
struct Node {
ElementType Element;
Position Next;
};

The function Reverse is supposed to return the reverse linked list of L, with a dummy header.

1
List Reverse(List L);
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
List Reverse(List L)
{
if(L->Next == NULL)
{
//空链表
return L;
}
Position move = L->Next;
Position pre = L;
Position tmp;
while(move != NULL)
{
tmp = move->Next; //下一个结点
move->Next = pre;//指向前一个
pre = move;
move = tmp;
}
Position first = L->Next; //原链表第一个结点,现在是最后一个
first->Next = NULL; //原本指向L,现在要指向NULL
L->Next = pre; //L作为dummy head要指向原来的链表的最后一个结点,即pre
return L;
}
  • Title: FDS-Exercise
  • Author: Hare Fuyukawa
  • Created at : 2026-03-25 10:29:39
  • Updated at : 2026-03-25 18:22:25
  • Link: https://redefine.ohevan.com/Data-Structure/DS/FDS-Exercise/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
FDS-Exercise