题解 | #输出单向链表中倒数第k个结点#

输出单向链表中倒数第k个结点

https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {

        
        // int n = Integer.parseInt(in.nextInt());
        int n = in.nextInt();
        ListNode head = new ListNode(-1);
        ListNode temp = head;
        // 生成链表
        for (int i = 0; i < n; i++) {
            ListNode node = new ListNode(in.nextInt());
            temp.next = node;
            temp = node;
        }

        // 定义快慢双指针
        ListNode fast = head;
        ListNode slow = head;

        // 快指针先走K步
        int k = in.nextInt();
        for (int i = 0; i < k; i++) {
            fast = fast.next;
        }

        while (fast != null) {
            slow = slow.next;
            fast = fast.next;
        }

        System.out.println(slow.val);

    }
    }

}

class ListNode {
    int val;
    ListNode next;

    ListNode(int val) {
        this.val = val;
        this.next = null;
    }
}

这道题看了别人的解法后自己搞出来了,真的很开心!

快慢双指针太机智了!

全部评论

相关推荐

头像
11-18 16:08
福州大学 Java
影流之主:干10年不被裁,我就能拿别人一年的钱了,日子有盼头了
点赞 评论 收藏
分享
10-24 13:36
门头沟学院 Java
Zzzzoooo:更新:今天下午有hr联系我去不去客户端,拒了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务