在网上看到的一种思路,很巧妙。
p和q差k个距离,两个指针同时走。当q到达尾部,q指向的就是对应节点
static <T> Node<T> backward(Node<T> first,int k){
if(first == null||k<=0)
return null;
Node<T> q = first;
Node<T> p = first;
for (int i = 0; i < k; i++) {
q = q.next;
if(q == null)
return null;
}
while (q!=null){
q = q.next;
p = p.next;
}
return p;
}