阜宁网站制作服务,周口市建设局网站,地图素材如何做ppt模板下载网站,中国国际贸易网官网平台题目#xff1a; 输入一个链表#xff0c;输出该链表中倒数第k个结点。 题源#xff1a;链表中倒数第k个结点_牛客题霸_牛客网 (nowcoder.com) 方法一#xff1a;暴力求解法
可以线统计链表的节点个数#xff0c;然后用链表节点的个数减去K#xff0c;得出倒数第K个节点… 题目 输入一个链表输出该链表中倒数第k个结点。 题源链表中倒数第k个结点_牛客题霸_牛客网 (nowcoder.com) 方法一暴力求解法
可以线统计链表的节点个数然后用链表节点的个数减去K得出倒数第K个节点的前一个节点到头节点的节点个数。之后使用循环遍历遍历到倒数第K个节点的前一个节点随后输出下一个节点。而输出的下一个节点便是倒数第K个节点。 方法二快慢指针的长度差
设立两个指针fast、slow因为所求的是倒数第K个节点所以这个节点到尾节点的距离是K所以利用这个K进行一个距离差也就是将fast和slow之间的距离变成K并且按照同样的速度向前运动直到fast走到NULL当fast走到NULL的时候也就表明了slow指向的节点就是倒数第K个节点。 转化为代码就是先让fast走到和头节点相差距离为K的节点位置然后fast和slow同时向前移动一个节点的距离位置直到fastNULL 注意还是需要进行K的判断 如果K大于链表长度则再进行移动fast的距离时fast就会被移动到NULL上