To find the kth to Last Element of a Singly Linked List
- To find the kth to Last Element of a Singly Linked List
- Web Link
- Description
- Code - C
- Tips
Web Link
None
Description
Write a pro-gram to find the kth to Last Ele-ment of a Singly Linked List
For example:
Orig-i-nal List : ->1->2->8->3->7->0->4
Out-put : 3rd Ele-ment from the end is : 7
Code - C++
- 片段
ListNode* findkthtolast(ListNode *head, int k) {
ListNode* runner = head;
ListNode* chaser = head;
if (head == NULL || k < 0) {
return NULL;
}
for (int i = 0; i < k; i++) {
runner = runner->next;
}
while (runner != NULL) {
chaser = chaser->next;
runner = runner->next;
}
return chaser;
}
- 完整(包括测试)
#include<iostream>
using namespace std;
class ListNode{
public:
int val;
ListNode* next;
ListNode(const int val, ListNode* nextNode = NULL) :val(val), next(nextNode){
}
};
ListNode* findkthtolast(ListNode *head, int k) {
ListNode* runner = head;
ListNode* chaser = head;
if (head == NULL || k < 0) {
return NULL;
}
for (int i = 0; i < k; i++) {
runner = runner->next;
}
while (runner != NULL) {
chaser = chaser->next;
runner = runner->next;
}
return chaser;
}
void findkthtolasttest() {
ListNode* head = new ListNode(1, NULL);
ListNode* node = head;
node->next = new ListNode(2, NULL);
node = node->next;
node->next = new ListNode(8, NULL);
node = node->next;
node->next = new ListNode(4, NULL);
node = node->next;
node->next = new ListNode(7, NULL);
node = node->next;
node->next = new ListNode(0, NULL);
node = node->next;
node->next = new ListNode(4, NULL);
node = node->next;
node->next = NULL;
cout << findkthtolast(head,3)->val << endl;
}
int main() {
findkthtolasttest();
return 0;
}
Tips
None
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-12-29 23:35:48