求链表倒数第k个节点

来源:互联网 发布:淘宝绝对正品的文具店 编辑:程序博客网 时间:2024/04/28 04:00

1 设置快慢指针
2 快指针先走k步
3 快慢指针一起走,当快指针到NULL,慢指针也就是所求

代码片段:

#include<iostream>#include<stdio.h>#include<assert.h>typedef struct Listnode{    char data;    Listnode *next; }Listnode;Listnode *head = NULL;Listnode * find_last_node(Listnode * head,int k){    assert( k >= 0);    Listnode *p_fast  = NULL;    Listnode *p_slow = NULL;    p_slow = p_fast = head;    for(;k>0 && p_fast != NULL;k--)    {        p_fast = p_fast->next;    }    if(k>0)        return NULL;    while(p_fast != NULL)    {        p_fast = p_fast ->next ;        p_slow = p_slow ->next;    }    return p_slow;}
0 0
原创粉丝点击