输入一个链表,输出该链表中倒数第k个结点。
package 链表;
public class Solution {
public static void main(String[] args) {
ListNode head1=new ListNode(1);
ListNode head2=new ListNode(2);
ListNode head3=new ListNode(3);
ListNode head4=new ListNode(4);
ListNode head5=new ListNode(5);
ListNode head6=new ListNode(6);
head1.next=head2;
head2.next=head3;
head3.next=head4;
head4.next=head5;
head5.next=head6;
head6.next=null;
System.out.println(FindKthToTail(head1,6).val);
}
public static ListNode FindKthToTail(ListNode head,int k) {
ListNode second=head;
ListNode one=head;
ListNode three=head;
int count=1;
if(head==null || k<=0){
return null;
}
while(three.next!=null){
three=three.next;
count++;
}
if(k>count){
return null;
}
System.out.println(count);
for(int i=1;i<k;i++){
one=one.next;
}
while(one.next!=null){
one=one.next;
second=second.next;
}
return second;
}
}
public static void main(String[] args) {
ListNode head1=new ListNode(1);
ListNode head2=new ListNode(2);
ListNode head3=new ListNode(3);
ListNode head4=new ListNode(4);
ListNode head5=new ListNode(5);
ListNode head6=new ListNode(6);
head1.next=head2;
head2.next=head3;
head3.next=head4;
head4.next=head5;
head5.next=head6;
head6.next=null;
System.out.println(FindKthToTail(head1,6).val);
}
public static ListNode FindKthToTail(ListNode head,int k) {
ListNode second=head;
ListNode one=head;
ListNode three=head;
int count=1;
if(head==null || k<=0){
return null;
}
while(three.next!=null){
three=three.next;
count++;
}
if(k>count){
return null;
}
System.out.println(count);
for(int i=1;i<k;i++){
one=one.next;
}
while(one.next!=null){
one=one.next;
second=second.next;
}
return second;
}
}
class ListNode {
int val;
ListNode next = null;
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
this.val = val;
}
}