【链表】如何查找单链表的倒数第n个指针

来源:互联网 发布:流程优化的方面 编辑:程序博客网 时间:2024/06/13 12:23

算法一:第一次遍历到链表末尾,找到链表长度N;第二遍遍历,找到第N-n个节点。

算法二:设立两个指针,p1指向头节点,p2往前走n步,这样,p2与p1之间间隔n个指针。这样,当p2到达末尾是,p1则为倒数第N-n个节点。

 

Node *lastN(Node *head)

{

        Node *p1=head,*p2=head;

        for(int i=0;i<n;i++)

        {

                if(p2==NULL) 

                        return NULL;

                p2=p2->next;

        }

 

        while(p2)

        {

                p1=p1->next;

                p2=p2->next;

        }

        return p1;

}

原创粉丝点击