To find the kth to Last Element of a Singly Linked List

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

您的回应...

相关话题

查看全部

也许你感兴趣

换一批

热门标签

更多