美文网首页程序员
查找链表中倒数第k个元素的节点

查找链表中倒数第k个元素的节点

作者: 沧州宁少 | 来源:发表于2017-10-25 12:24 被阅读0次

查找链表中倒数第k个元素的节点

遇到这道题了看了这位大哥的然后自己理解了下分享给大家

算法考虑通过2个指针,两个指针都指向第一个位置。当第一个指针指向k-1时候,第二个指针开始移动,然后第一个指针指向末尾的时候。第二个指针的指向

936002-20160414185123879-1130264033.png

还有另外一种情况,两种情况通过两个指针这个均满足

936002-20160414184635848-1331750727.png

//异常情况 i. p_header为空 2.m大于链表的长度。3.m<=0

ListNode*FindKPath(ListNode*p_header,int m){

if (p_header == NULL) {
    return NULL;
}
if (m<=0) {
    return NULL;
}
ListNode*pHeader = p_header;
ListNode*pFooter = p_header;

for (int i=1; i<m; i++) {
    if (pHeader->next == NULL) {
        return NULL;
    }
    pHeader = pHeader->next;
}
while (pHeader->next) {
    pHeader = pHeader->next;
    pFooter = pFooter->next;
}
return pFooter;
 }

相关文章

网友评论

    本文标题:查找链表中倒数第k个元素的节点

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