LeetCode 面试题02.02. 返回倒数第k个节点

思路描述:采用双指针的思想,让head指针先行移动k个位置,然后head,h同步移动,当head指针移动到链表尾,h指针所指即为倒数第k个节点

LeetCode 代码如下:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    int kthToLast(ListNode* head, int k) {
           /*
           双指针,head指针先移动k个位置,h然后从头开始与head同步移动,当head指向链表尾时,h指向倒数k个节点
           */
           ListNode *h;
           h=head;
           int d=0;
           for(;d<k;d++){
               head=head->next;
           }
           while(head){
               head=head->next;
               h=h->next;
           }
           return h->val;
    }
};
原文地址:https://www.cnblogs.com/zzw-/p/13275357.html