在线编程--输出单向链表中倒数第k个结点

来源:互联网 发布:账目数据报表 编辑:程序博客网 时间:2024/04/29 21:41

题目描述

输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。
链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
详细描述:
接口说明
原型:
ListNode* FindKthToTail(ListNode* pListHead, unsignedint k);
输入参数:
ListNode* pListHead 单向链表
unsigned int k 倒数第k个结点
输出参数(指针指向的内存区域保证有效):

返回值:
正常返回倒数第k个结点指针,异常返回空指针

输入描述:
输入说明
1 输入链表结点个数
2 输入链表的值
3 输入k的值

输出描述:
输出一个整数

输入例子:
8
1 2 3 4 5 6 7 8
4

输出例子:
4

import java.util.Scanner;public class Main {    public static void main(String[] strs){        Scanner in=new Scanner(System.in);        while(in.hasNext()){            ListNode node=new ListNode(0);            node.next=null;            int N=in.nextInt();            for(int i=0;i<N;i++){                int data=in.nextInt();                ListNode p=new ListNode(data);                p.next=node.next;  //存储时 倒着存                node.next=p;            }            int k=in.nextInt();            int count=0;            while(node.next!=null&&count<k){                count++;                node=node.next;            }            System.out.println(node.next.val);        }    }} class ListNode {    int val;    ListNode next = null;    ListNode(int val) {        this.val = val;    }}
0 0
原创粉丝点击