【剑指offer】链表中倒数第k个节点 --Java实现
题目描述
输入一个链表,输出该链表中倒数第k个结点。
输入
1,{1,2,3,4,5}
返回值
{5}
思路分析
快慢指针,首先让快指针先行k步,然后快慢指针同行一步,直到快指针指向null,此时慢指针就是倒数第k个节点。
核心代码
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode FindKthToTail(ListNode head,int k) { if(head==null||k==0) return null; ListNode slow = head; ListNode fast = head; for(int i=0;i<k;i++){ if(fast==null) return null; fast = fast.next; } while(fast!=null){ slow=slow.next; fast=fast.next; } return slow; } }
浙公网安备 33010602011771号