【剑指OFFER】链表中倒数第k个结点

【问题描述】

输入一个链表,输出该链表中倒数第k个结点。

时间限制:1秒 空间限制:32768K

【AC代码】

p先走k步,q再走,这样p和q的距离就是k了,等p走到尽头,那么q自然就到了倒数第k个位置了。

 1 /*
 2 public class ListNode {
 3     int val;
 4     ListNode next = null;
 5 
 6     ListNode(int val) {
 7         this.val = val;
 8     }
 9 }*/
10 public class Solution {
11     public ListNode FindKthToTail(ListNode head,int k) {
12         ListNode p, q;
13         p = q = head;
14         int i = 0;
15         for (;p != null; i++) {
16             if (i >= k) q = q.next;
17             p = p.next;
18         }
19         return i < k ? null : q;
20     }
21 }
View Code

 

posted @ 2019-10-04 17:44  ___Moongazer  阅读(102)  评论(0)    收藏  举报