找出链表中倒数第k个元素
实现:

public class GetKthFromEnd {    public ListNode getKthFromEnd(ListNode head,int k){        ListNode node = head;        while(node != null && k > 0){            node = node.getNext();            k--;        }        ListNode listNode = head;        while (node.getNext() != null){            node = node.getNext();            listNode = listNode.getNext();        }        return listNode.getNext();    }    public static void main(String[] args) {        GetKthFromEnd.ListNode head = new GetKthFromEnd.ListNode(1);        GetKthFromEnd.ListNode node1 = new GetKthFromEnd.ListNode(2);        GetKthFromEnd.ListNode node2 = new GetKthFromEnd.ListNode(3);        GetKthFromEnd.ListNode node3 = new GetKthFromEnd.ListNode(4);        GetKthFromEnd.ListNode node4 = new GetKthFromEnd.ListNode(5);        head.setNext(node1);        node1.setNext(node2);        node2.setNext(node3);        node3.setNext(node4);        GetKthFromEnd getKthFromEnd = new GetKthFromEnd();        ListNode kthFromEnd = getKthFromEnd.getKthFromEnd(head, 2);//获取倒数第二个节点 System.out.println(kthFromEnd.getValue());    }    static class ListNode{        int value;        ListNode next;        public int getValue() {            return value;        }        public void setValue(int value) {            this.value = value;        }        public ListNode getNext() {            return next;        }        public void setNext(ListNode next) {            this.next = next;        }        ListNode(int x){            this.value = x;        }    }}

k假如为2,即找出倒数第2个节点(也就是要找到节点值为'4'的节点)
这里应用了快慢指针的方法,
办法getKthFromEnd中第一个while循环是让快指针先挪动到指定的节点,接着在第二个循环中再同时挪动快慢指针,当快指针挪动到最初一个时,那慢指针所对应的下一个节点即是须要找的节。