华为OJ训练之0008-161230-输出链表倒数第k个数字
来源:互联网 发布:中国象棋软件哪个好使 编辑:程序博客网 时间:2024/06/04 18:08
题目
输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。
链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
详细描述:
接口说明
原型:
ListNode* FindKthToTail(ListNode* pListHead, unsignedint k);
输入参数:
ListNode* pListHead 单向链表
unsigned int k 倒数第k个结点
输出参数(指针指向的内存区域保证有效):
无
返回值:
正常返回倒数第k个结点指针,异常返回空指针
知识点 链表,查找,指针
运行时间限制 10M
内存限制 128
输入
输入说明
1 输入链表结点个数
2 输入链表的值
3 输入k的值
输出
输出一个整数
样例输入 8 1 2 3 4 5 6 7 8 4
样例输出 4
第一次 答案错误 经检查发现没有认真读题 搞错了输入
第二次 正确 得分98分
=============================================================
import java.util.Scanner;//输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。//链表结点定义如下://struct ListNode//{// int m_nKey;// ListNode* m_pNext;//};//详细描述://接口说明//原型://ListNode* FindKthToTail(ListNode* pListHead, unsignedint k);//输入参数:// ListNode* pListHead 单向链表// unsigned int k 倒数第k个结点//输出参数(指针指向的内存区域保证有效):// 无//返回值:// 正常返回倒数第k个结点指针,异常返回空指针// // //知识点 链表,查找,指针//运行时间限制 10M//内存限制 128//输入 //输入说明//1 输入链表结点个数//2 输入链表的值//3 输入k的值//输出 //输出一个整数//样例输入 8 1 2 3 4 5 6 7 8 4//样例输出 4class node{int key;node next=null;//ListNode* FindKthToTail(ListNode* pListHead, unsignedint k);//输入参数:// ListNode* pListHead 单向链表// unsigned int k 倒数第k个结点public node findKthToTail(node head,int k){ node kNode =null; int n=getLength(head)-k; if(n>=0&&n<getLength(head)) { kNode=getNthNode(head, n); } return kNode;}//获取正数第n个数字public node getNthNode(node head,int n){node NNode =head;for(int i=1;i<n;i++){NNode=NNode.next; }return NNode;}//获取总长度public int getLength(node head){int count=0;node p=head;while(p!=null){count++;p=p.next;}return --count; //扣除尾指针}}public class oj008 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); node head=new node(); node p=head; for(int i=0;i<n;i++) { p.key=scanner.nextInt(); p.next=new node(); p=p.next; } int k=scanner.nextInt(); node knode=head.findKthToTail(head, k); if(knode!=null) {System.out.print(knode.key);} }}
0 0
- 华为OJ训练之0008-161230-输出链表倒数第k个数字
- 华为oj输出单向链表倒数第k个节点
- 华为OJ:输出单向链表中倒数第k个结点
- 华为OJ(输出单链表倒数第K个节点)
- 【华为oj】输出单向链表中倒数第k个结点
- 华为oj:输出单向链表中倒数第k个结点
- 华为oj 输出单向链表中倒数第k个结点
- 【华为OJ】输出单向链表中倒数第k个结点
- 华为OJ训练之0006-161229-输出前k个最小数字
- 华为机试在线训练-牛客网(26)输出单向链表中倒数第k个结点
- 华为OJ基础篇-输出单向链表中倒数第k个结点
- 华为OJ基础篇-输出单向链表中倒数第k个结点
- 华为OJ题目(十九):输出单链表倒数第K个节点
- 【华为OJ】【035-输出单向链表中倒数第k个结点】
- 华为OJ——输出单向链表中倒数第k个结点
- 华为OJ 初级:输出单向链表中倒数第k个结点
- 华为OJ 初级 输出单向链表中倒数第k个结点
- 华为oj 初级 输出单向链表中倒数第k个结点
- Linux 系统调用机制(上)
- caffe安装教程之WIN7无GPU绝对能安装成功的简单版教程
- MySQL中的int
- RealSense技术在SR300摄像头上的应用
- MySQL数据库基础语句操作整理
- 华为OJ训练之0008-161230-输出链表倒数第k个数字
- bzoj 2693: jzptab (反演)
- Eclipse使用Maven创建项目时错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quick
- 标准I/O
- MAC连接腾讯云
- Masonry 源码解读
- 深入浅出MVC模式
- 华为OJ训练之0009-161231-统计二进制数字中1的个数(求int型数据在内存中存储时1的个数)
- Tomcat 8/7 无法启动 [StandardEngine[Catalina].StandardHost[localhost].StandardContext