思路1:暴力 ,先暴力一次链表,记录链表的长度n,第二次遍历n-k+1个元素,返回,一共需要2n+1-k个
思路2:两个指针,左右指针相差k-1个距离,有指针到达链表末尾时,做指针指向倒数第k个元素.
思路3;
public static Node getFindNFromEndToList(Node head,int k){
Node fisrt=head;
Node second=head;
int i=0;
while (i<k){
fisrt=fisrt.next;
i++;
}
while(fisrt!=null){
fisrt=fisrt.next;
second=second.next;
}
return second;
}
public static void main(String[] args) {
Node node1=new Node(1);
Node node2=new Node(2);
Node node3=new Node(3);
Node node4=new Node(4);
Node node5=new Node(5);
Node node6=new Node(6);
node1.next=node2;
node2.next=node3;
node3.next=node4;
node4.next=node5;
node5.next=node6;
Node findNFromEndToList = getFindNFromEndToList(node1, 2);
System.out.println(findNFromEndToList.getData());
}