【华为OJ】【035-输出单向链表中倒数第k个结点】
来源:互联网 发布:违反交通淘宝 编辑:程序博客网 时间:2024/06/05 23:55
【华为OJ】【算法总篇章】
【华为OJ】【035-输出单向链表中倒数第k个结点】
【工程下载】
题目描述
输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。
输入描述
输入说明1 输入链表结点个数2 输入链表的值3 输入k的值
输出描述
输出一个整数
输入例子
8 1 2 3 4 5 6 7 8 4
输出例子
4
算法实现
import org.omg.SendingContext.RunTime;import java.util.List;import java.util.Scanner;/** * Author: 王俊超 * Date: 2015-12-24 16:10 * All Rights Reserved !!! */public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);// Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt")); while (scanner.hasNext()) { int n = scanner.nextInt(); ListNode head = new ListNode(0); ListNode prev = head; while ((--n) >= 0) { prev.next = new ListNode(scanner.nextInt()); prev = prev.next; } int k = scanner.nextInt(); System.out.println(findKthToTail(head, k)); } scanner.close(); } /** * 找倒数第k个结点,假设k是有效的 * * @param head * @param k * @return */ private static ListNode findKthToTail(ListNode head, int k) { ListNode prev = head; while (--k >= 0 && prev != null) { prev = prev.next; } // 说明k已经超出了链表的长度 if (prev == null) { throw new RuntimeException("k=" + k + "不合法"); } // 注释掉的才是正确答案// while (prev != null) {// prev = prev.next;// head = head.next;// } // 如果从0开始,即链表尾部第一个是倒数第0个那么下面是正确的 while (prev.next != null) { prev = prev.next; head = head.next; } return head; } private static class ListNode { int v; ListNode next; ListNode(int v) { this.v = v; } @Override public String toString() { return "" + v; } }}
3 0
- 华为OJ:输出单向链表中倒数第k个结点
- 【华为oj】输出单向链表中倒数第k个结点
- 华为oj:输出单向链表中倒数第k个结点
- 华为oj 输出单向链表中倒数第k个结点
- 【华为OJ】输出单向链表中倒数第k个结点
- 【华为OJ】【035-输出单向链表中倒数第k个结点】
- 华为oj_输出单向链表中倒数第k个结点
- 华为OJ基础篇-输出单向链表中倒数第k个结点
- 华为OJ基础篇-输出单向链表中倒数第k个结点
- 华为OJ——输出单向链表中倒数第k个结点
- 华为OJ 初级:输出单向链表中倒数第k个结点
- 华为OJ 初级 输出单向链表中倒数第k个结点
- 华为oj 初级 输出单向链表中倒数第k个结点
- 华为OJ——输出单向链表中倒数第k个结点
- 华为机试在线训练-牛客网(26)输出单向链表中倒数第k个结点
- 输出单向链表中倒数第k个结点
- 输出单向链表中倒数第k个结点
- 输出单向链表中倒数第k个结点
- 盘点7款应用最广泛的 Linux 桌面环境
- Linux挂载命令mount用法及参数详解
- 【华为OJ】【032-输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数】
- 【华为OJ】【033-名字的漂亮度】
- 【华为OJ】【034-找出字符串中第一个只出现一次的字符】
- 【华为OJ】【035-输出单向链表中倒数第k个结点】
- LeetCode 314. Binary Tree Vertical Order Traversal
- 沟通
- java的类加载顺序
- ionic项目简介以及Angularjs 基础
- Myeclipse配置好tomcat仍然报错404
- MAGENTO 后台模块开发二
- [leetcode] 71. Simplify Path 解题报告
- Linux系统调优之vmstat