美文网首页二叉树之下
剑指offer-14-链表中倒数第k个节点

剑指offer-14-链表中倒数第k个节点

作者: Buyun0 | 来源:发表于2018-08-07 02:48 被阅读1次

    链表中倒数第k个节点:

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

    思路:
    先新建一个距离头节点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) {
            ListNode *a= pListHead,*b= pListHead;
           if(pListHead == NULL)return NULL;
            while(k>0){
                if(b->next == NULL &&k ==1) return a;
                if(b->next == NULL &&k >1) return NULL;
                b = b->next;
                k--;
            }
            while(true){
                if(b->next == NULL){
                    return a->next;
                }
                b = b->next;
                a = a->next;
                
            }
            return a;
        }
    };
    

    相关文章

      网友评论

        本文标题:剑指offer-14-链表中倒数第k个节点

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