list

来源:互联网 发布:彩票计划软件 编辑:程序博客网 时间:2024/06/05 16:46

一,链表中倒数第k个节点

题目描述

输入一个链表,输出该链表中倒数第k个节点。


我的代码

/***  为了实现只遍历链表一次就能找到倒数第k个节点,我们定义两个指针。*  第一个指针从链表的头指针开始遍历向前走k-1步,第二个指针保持不动。*  从第k步开始,第二个指针也开始从链表的头指针开始遍历。由于两个指针*  的距离保持在k-1,当第一个指针到达链表的尾节点时,第二个指针刚好走到*  倒数第k个节点。*/ListNode *findKthToTail(ListNode *head, int k){    ListNode *fast = head;    ListNode *slow = NULL;    if(head == NULL || k <= 0){        return NULL;    }    for(int i = 0; i < k - 1; i ++){        fast = fast->next;    }    slow = head;    while(fast->next != NULL){        slow = slow->next;        fast = fast->next;    }    return slow;}

原创粉丝点击