题解 | #输出单向链表中倒数第k个结点#
输出单向链表中倒数第k个结点
https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int a = in.nextInt(); Single_Linklist a_list = new Single_Linklist(); for(int i =0;i<a;i++){ Node node = new Node(in.nextInt()); a_list.add(node); } int k = in.nextInt(); int list_len = a_list.get_lenth(); if((list_len-k+1)>0){ System.out.println(a_list.get_node(list_len-k+1)); } } } } class Node{ int num; Node next_Node; public Node (int number){ this.num = number; } } class Single_Linklist{ private Node head = new Node(0); public void add(Node a_node){ Node temp = head; while(true){ if(temp.next_Node == null){ break; } temp = temp.next_Node; } temp.next_Node = a_node; } public int get_lenth(){ if(head.next_Node == null){ return 0; } int sum = 0; Node temp = head; while(true){ if(temp.next_Node == null){ break; } sum+=1; temp = temp.next_Node; } return sum; } public int get_node(int k){ Node temp = head; int a = 0; while(true){ if(temp.next_Node == null){ System.out.println("该位置不存在!"); return 0; } temp = temp.next_Node; a++; if(a == k){ break; } } return temp.num; } }