美文网首页
剑指Offer 面试题22 链表中倒数第k个节点

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

作者: Yue_Q | 来源:发表于2018-12-18 20:30 被阅读0次

    题目描述

    输入一个链表,输出该链表中倒数第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;
        }
    };
    
    • 考虑参数值是否合法
    • 考虑 k 小于链表大小

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/pghrkqtx.html