链表中倒数第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 }
少偷懒。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。