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

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

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

双指针解决输出链表倒数第k个节点
import java.io.IOException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int count = sc.nextInt();
            // 哨兵节点
            Node dummy = new Node(-1);
            Node cur = dummy;
            for(int i = 0; i < count; i++){
                // 正向构建链表
                cur.next = new Node(sc.nextInt());
                cur = cur.next;
            }
            Node before = dummy.next;
            int k = sc.nextInt();
            // before先走k-1步
            for(int i = 1; i < k; ++i){
                before = before.next;
            }
            // 然后after再走
            Node after = dummy.next;
            while(before.next != null){
                before = before.next;
                after = after.next;
            }
            System.out.println(after.value);
        }
    }
    private static class Node{
        public int value;
        public Node next;

        public Node(int value) {
            this.value = value;
        }
    }
}


全部评论

相关推荐

服从性笔试吗,发这么多笔,现在还在发。
蟑螂恶霸zZ:傻 x 公司,发两次笔试,两次部门匹配挂,
投递金山WPS等公司10个岗位 >
点赞 评论 收藏
分享
我也曾抱有希望:说的好直白
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务