【九度OJ1517】|【剑指offer15】链表中倒数第k个结点
博客专区 > aqia358 的博客 > 博客详情
【九度OJ1517】|【剑指offer15】链表中倒数第k个结点
aqia358 发表于5年前
【九度OJ1517】|【剑指offer15】链表中倒数第k个结点
  • 发表于 5年前
  • 阅读 40
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

题目描述:

输入一个链表,输出该链表中倒数第k个结点。
(hint: 请务必使用链表。)

输入:

输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行为两个整数n和k(0<=n<=1000, 0<=k<=1000):n代表将要输入的链表元素的个数,k代表要查询倒数第几个的元素。
输入的第二行包括n个数t(1<=t<=1000000):代表链表中的元素。

输出:

对应每个测试案例,
若有结果,输出相应的查找结果。否则,输出NULL。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;

class Node{
	public int data;
	public Node next;
	public Node(int data){
		this.data = data;
	}
}
public class Main {

	public static void main(String[] args) throws IOException {
		StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
		while(st.nextToken() != st.TT_EOF){
			int n = (int) st.nval;
			st.nextToken();
			int num = (int) st.nval;
			Node first = new Node(-1);
			int count = 0;
			while(count < n){
				st.nextToken();
				int t = (int) st.nval;
				Node node = new Node(t);
				node.next = first;
				first = node;
				count++;
			}
			if(num > n)
				System.out.println("NULL");
			else{
				Node f = first;
				while(num > 1){
					f = f.next;
					num--;
				}
				System.out.println(f.data);
			}
		}
	}

}


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 6
博文 81
码字总数 30297
×
aqia358
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: