Leetcode之打印链接的倒数第K个节点
【摘要】 1 问题
打印链表倒数第K个节点值。
2 代码实现
#include<stdio.h> //定义一个Node结构体,里面包含了value值和保存了下一个Node的指针(地址)typed...
1 问题
打印链表倒数第K个节点值。
2 代码实现
-
#include<stdio.h>
-
-
//定义一个Node结构体,里面包含了value值和保存了下一个Node的指针(地址)
-
typedef struct Node
-
{
-
int value;
-
Node *next;
-
} Node;
-
-
//打印链表所有的值,循环遍历一次,因为链表节点的最后一个节点肯定是空,所以循环条件是node==NULL就终止循环
-
void printList1(Node *head)
-
{
-
if (head == NULL)
-
{
-
printf("head is NULL\n");
-
return;
-
}
-
while (head != NULL)
-
{
-
printf("value is %d\n", head->value);
-
head = head->next;
-
}
-
}
-
-
/**
-
打印链表的倒数第K个值,比如我们链接是0->1->2->3->4->5->6->NULL,K是2,我们知道这个倒数第二个值是5,我们怎么获取呢?定义2个节点指针,分别是叫快慢指针,我们先让快指针走K步
-
也就是把快节点指针移动到值为2的地方,
-
0->1->2->3->4->5->6->NULL
-
low fast
-
然后我们一起把low和fast向后移动,直到fast节点指向NULL为止,那么low节点的值就是我们需要找到的倒数第K个值
-
0->1->2->3->4->5->
文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。
原文链接:chenyu.blog.csdn.net/article/details/113921419
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)