剑指Offer 面试题22 链表中倒数第k个节点

2018-12-18  本文已影响0人  Yue_Q

题目描述

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

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
public:
    ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
        if(pListHead == nullptr || k==0) return nullptr;
        ListNode *pAhead1 = pListHead;
        ListNode *pBehind ;
        
        L1 = pListHead;
        
        for (int i=0;i<k-1;i++){
            if(L1->next){
                 L1 = L1->next;
            }else{
                return nullptr;// 没有 k 过大
            }
           
        }
        
        L2 = pListHead;
        while(L1->next){ //存在链表后面的值
            L1 = L1->next;
            L2 = L2->next;
        }
        return L2;
    }
};
上一篇下一篇

猜你喜欢

热点阅读