单链表的倒数第k个节点

给定一个非空单链表,返回其倒数第k个节点。
要求:不改变和新增任何节点。
输入、输出描述
输入:
list:非空单链表头节点
k: 给定整数,且k>=1 and k<=len(list)
输出:
list的倒数第k个节点
Example
输入:
list=list(1,2,3,4,5)
k=2
输出:
list(4,5)
代码:
import java.util.*;

public class Main {

    /**
    //该段代码仅用于调试,提交时请注释该段代码
    class LinkNode<T> {

        public T data;

        public LinkNode<T> next;
    }
 */ 

 public LinkNode<Integer> solution(LinkNode<Integer> list,int k) {


     LinkNode<Integer> former = list, latter = list;
        for(int i = 0; i < k; i++)
            former = former.next;
        while(former != null) {
            former = former.next;
            latter = latter.next;
        }
        return latter;

    }
}
一个创业中的苦逼程序员
评论专区

隐藏