美文网首页
链表中倒数第k个结点

链表中倒数第k个结点

作者: 安然_fc00 | 来源:发表于2017-03-24 22:17 被阅读0次

指针法

    ListNode* FindKthToTail(ListNode* head, unsigned int k) {
        if(head == NULL || k<=0)
        {
            return NULL;
        }
        ListNode* p1 = head;
        ListNode* p2 = head;
        int n = k-1;
        while(n > 0 && p1->next != NULL)
        {
            p1 = p1->next;
            n--;
        }
        if(n > 0)//k>总长度
        {
            return NULL;
        }
        else if(p1->next == NULL)//k=总长度
        {
            return head;
        }
        //k<总长度
        while(p1->next != NULL)
        {
            p1 = p1->next;
            p2 = p2->next;
        }
         
        return p2;
    }

相关文章

网友评论

      本文标题:链表中倒数第k个结点

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