By
Leo_璇哥
更新日期:
文章目录
设计一个算法,找出一个无环的单链表里面倒数第k个元素。
- 首先,检查链表是否为空,以及检查输入的k的有效性。
- 其次,考虑单链表少于K个元素的情况。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| struct node{ int key; node* next; }; typedef node* List; int findLastKthElement(List list, int k) { if (list == NULL || k <= 0) { return -1; } List p = list; List tempList = list; int num = 0; while(p) { if (num < k) { num++; } else if (num == k) { tempList = tempList->next; } p = p->next; } if (num < k) { return -1; } return tempList->key; }
|