链表中倒数第k个结点

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

思路:使用两个指针一个指在头节点另一个指在第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(k==0)
13             return null;
14         if(head==null)
15             return null;
16         else{
17             ListNode pre = head;
18             ListNode end = head;
19             for(int i=k-1;i>0;i--){
20                 end = end.next;
21             }
22             if(end==null)
23                 return null;
24             else if(end.next==null)
25                 return pre;
26             else{
27                 while(end.next!=null){
28                     pre = pre.next;
29                     end = end.next;
30                 }
31                 return pre;
32             }
33         }
34     }
35 }

少偷懒。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

原文地址:https://www.cnblogs.com/haq123/p/12117184.html