剑指Offer--链表中倒数第k个结点
问题描述:输入一个链表,输出该链表中倒数第k个结点。
思路:1、得到链表的长度,这样才能从链表头部定位到倒数第k个结点,即正数len-k+1个结点。
2、正向遍历链表,直到len-k+1个结点,返回。
代码:
/* 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; int len = getLength(head); int count =0 ; if(k>len) return null; while(count<len-k){ head=head.next; ++count; } return head; } private int getLength(ListNode head){ if(head.next==null) return 1; else return 1+getLength(head.next); } }