码迷,mamicode.com
首页 > 其他好文 > 详细

【剑指offer】九,链表中倒数第k个结点

时间:2015-08-28 00:44:23      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

题目描述

输入一个链表,输出该链表中倒数第k个结点。
 
分析:此题为常见的快慢指针问题,java实现时要注意空指针错误以及边界条件。使用两个指针p和q,一个指针先走k-1步,然后第二个指针开始走。当第一个指针指向单链表的最后一个节点时,第二个指针指向倒数第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         if(head==null||k==0){
13             return null ;
14         }
15         ListNode p = new ListNode(0) ;
16         ListNode q = new ListNode(0) ;
17         p = head ;
18         q = head ;
19         while(k>1&&p.next!=null){
20             p=p.next ;
21             k-- ;
22         }
23         if(k>=2){
24             return null ;
25         }
26         while(p.next !=null&&q.next!=null){
27             p=p.next ;
28             q=q.next;
29         }
30         return q ; 
31     }
32 }

 

【剑指offer】九,链表中倒数第k个结点

标签:

原文地址:http://www.cnblogs.com/huntertoung/p/4765161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!