查找单链表的倒数第N个节点
2009-12-11 14:28
295 查看
查找单链表的倒数第N个节点(C语言)
LinkedList* GetNthNodeFromBack(LinkedList* Head, int N)
{
int i = 0;
LinkedList* firstNode = Head;
while (i < N && firstNode->next != NULL)
{ //正数N个节点,firstNode指向正的第N个节点
i++;
firstNode = firstNode->next;
}
if (firstNode->next == NULL && i < N - 1)
{ //当节点数量少于N个时,返回NULL
return NULL;
}
LinkedList* secNode = Head;
while (firstNode->next != NULL)
{ //查找倒数第N个元素
secNode = secNode->next;
firstNode = firstNode->next;
}
return secNode;
}
LinkedList* GetNthNodeFromBack(LinkedList* Head, int N)
{
int i = 0;
LinkedList* firstNode = Head;
while (i < N && firstNode->next != NULL)
{ //正数N个节点,firstNode指向正的第N个节点
i++;
firstNode = firstNode->next;
}
if (firstNode->next == NULL && i < N - 1)
{ //当节点数量少于N个时,返回NULL
return NULL;
}
LinkedList* secNode = Head;
while (firstNode->next != NULL)
{ //查找倒数第N个元素
secNode = secNode->next;
firstNode = firstNode->next;
}
return secNode;
}
相关文章推荐
- 查找单链表的倒数第k个节点
- 给定单链表的头结点,如何快速的找到倒数的第n个节点?
- 查找单链表的倒数第k个节点,要求只能遍历一次链表
- LintCode 找到单链表倒数第n个节点
- 删除单链表倒数第n个节点
- C语言:【单链表】查找单链表的倒数第k个节点,要求只能遍历一次
- Java单链表基本操作(五)--查找倒数第K个节点
- 查找单链表的倒数第k个节点,要求只能遍历一次链表
- 逆置、翻转链表/查找单链表的倒数第k个节点/A+B不使用四则运算++ -- 等
- 17_7_14:逆置单链表+查找单链表的倒数第K个节点+非常规方法实现Add函数
- 链表--查找单链表的倒数第k个节点,要求只能遍历一次链表
- day02逆置/反转单链表+查找单链表的倒数第k个节点+实现一个Add函数不用四则运算
- leetcode_19. Remove Nth Node From End of List 删除单链表中的倒数第n个节点,双指针法
- 查找单链表的倒数第k个节点,要求只能遍历一次链表
- 【LeetCode-面试算法经典-Java实现】【019-Remove Nth Node From End of List(移除单链表的倒数第N个节点)】
- 查找单链表中倒数第n个节点
- 剑指offer 15---查找单链表的倒数第k个节点,要求只能遍历一次链表
- 单链表的逆序和倒数第n个节点
- 逆置/反转单链表+查找单链表的倒数第k个节点,要求只能遍历一次链表
- 逆置/反转单链表+查找单链表的倒数第k个节点,要求只能遍历一次链表