剑指JZ14_链表中倒数第K个节点
Posted 硬盘红了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指JZ14_链表中倒数第K个节点相关的知识,希望对你有一定的参考价值。
题目描述:
输入一个链表,输出该链表中倒数第k个结点。
解题思路:快慢指针
快指针先走K步,之后两个指针同时前进,当快指针走出尾结点后,慢指针距离尾结点的距离为K-1,即是倒数第K个节点
public ListNode FindKthToTail(ListNode head, int k) { ListNode quick = head; ListNode slow = head; //考虑特殊情况:1.head为null 2.K = 0 3. k 大于链表长度 if (head == null || k == 0){ return null; } //快指针先走k步 for (int i = 0;i<k;i++){ if (quick == null){ return null; } quick = quick.next; } //然后两个指针同时前进 while (quick!=null){ quick = quick.next; slow = slow.next; } //当快指针走过尾结点,此时慢指针就是倒数第k个数 return slow; }
以上是关于剑指JZ14_链表中倒数第K个节点的主要内容,如果未能解决你的问题,请参考以下文章
JZ3.从尾到头打印链表;JZ14.链表中倒数第K个节点;JZ15.反转链表;JZ16.合并两个有序链表;JZ36.两个链表的第一个公共节点;JZ55.链表中环的入口节点;JZ56.删除链表中重复节点
剑指offer(C++)-JZ22:链表中倒数最后k个结点(数据结构-链表)
剑指offer(C++)-JZ22:链表中倒数最后k个结点(数据结构-链表)