剑指offer21 链表中的倒数第K个节点 Java

public class NumKOfReverse21 {
    static class Node {
        int val;
        Node next;
        public Node(int val){
            this.val = val;
        }
        @Override
        public String toString() {
            return "Node{" +
                    "val=" + val +
                    ", next=" + next +
                    '}';
        }
    }
    public static void main(String[] args) {
        Node root = new Node(0);
        Node node1 = new Node(2);
        Node node2 = new Node(5);
        Node node3 = new Node(3);
        Node node4 = new Node(4);
        root.next = node1;
        node1.next = node2;
        node2.next = node3;
        node3.next = node4;
        System.out.println(findK(root, 3).val);
    }

    private static Node findK(Node root, int k) {
        if (k <= 0) {
            return null;
        }
        Node p = root;
        while (--k > 0) {
            p = p.next;
        }
        Node pre = root;
        while (p.next != null) {
            pre = pre.next;
            p = p.next;
        }
        return pre;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43065507/article/details/99332741