输入一个链表,输出该链表中倒数第k个结点。
思路:
代码思路如下:两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k-1)步,到达第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(head==null||k<=0){ 13 return null; 14 } 15 ListNode pre=head; 16 ListNode last=head; 17 for(int i=1;i<k;i++){ 18 if(pre.next!=null){ 19 pre=pre.next; 20 }else{ 21 return null; 22 } 23 } 24 while(pre.next!=null){ 25 pre = pre.next; 26 last=last.next; 27 } 28 return last; 29 } 30 }