【链表】如何查找单链表的倒数第n个指针
2011-05-05 23:35
288 查看
算法一:第一次遍历到链表末尾,找到链表长度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;
}
算法二:设立两个指针,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;
}
相关文章推荐
- 【链表】如何查找单链表的倒数第n个指针
- 如何在单向链表中找到倒数第N个元素
- 查找单链表的倒数第k个节点,要求只能遍历一次链表
- 逆置、翻转链表/查找单链表的倒数第k个节点/A+B不使用四则运算++ -- 等
- 查找单链表的倒数第N个节点
- 反转单链表+合并有序单链表+查找单链表中倒数第k个节点--20150924
- 查找单链表的倒数第k个节点,要求只能遍历一次链表
- 剑指offer 15---查找单链表的倒数第k个节点,要求只能遍历一次链表
- 在单向链表中如何快速查到倒数第n个节点 这简直是一种神奇的思路!!!!leetcode 删除倒数第n个节点
- 逆置/反转单链表+查找单链表的倒数第k个节点,要求只能遍历一次链表
- 查找链表中的倒数第n个结点
- 查找单向链表倒数第n个元素
- 查找单链表的倒数第k个节点,要求只能遍历一次链表(C语言)
- 查找单链表的倒数第k个节点,要求只能遍历一次链表
- 查找单链表的倒数第k个节点,要求只能遍历一次链表
- 给定单链表的头结点,如何快速的找到倒数的第n个节点?
- C语言:【单链表】查找单链表的倒数第k个节点,要求只能遍历一次
- 单链表的创建(头插尾插),表长,输出,插入,删除,查找,逆置,分解长两个链表(奇数偶数链表),查找倒数第k个元素,产出相同元素
- 查找链表倒数第N个结点的地址(C++)
- 链表--查找单链表的倒数第k个节点,要求只能遍历一次链表