6-4链式表的按序号查找

题目描述

找到并返回链式表的第K个元素

L是给定单链表,函数FindKth要返回链式表的第K个元素。如果该元素不存在,则返回ERROR。

题目地址为:https://pintia.cn/problem-sets/15/problems/727

List结构定义

1
2
3
4
5
6
7
8
9
10
11
typedef struct LNode *PtrToLNode;

struct LNode {

ElementType Data;

PtrToLNode Next;

};

typedef PtrToLNode List;

思考

这第K个元素到底是从1开始数还是从0开始数呢?

姑且按它从1开始数吧(结果还真是从1开始数的)

又是个没有头结点的单链表

具体代码

1
2
3
4
5
6
7
8
9
10
11
ElementType FindKth( List L, int K ) {
while(L != NULL) {
K--;
if (K == 0) {
return L->Data;
}
L = L->Next;

}
return ERROR;
}