单链表的倒数第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 {

 
    public LinkNode<Integer> solution(LinkNode<Integer> list, int k) {
        //输入合法性校验
        if (list == null || k < 1) {
            return null;
        }

        LinkNode<Integer> cur = list;
        int total = 0;
        while (cur != null) {
            total++;
            cur = cur.next;
        }

        int skip = total - k;

        cur = list;
        for (int i = 0; i < skip; i++) {
            cur = cur.next;
        }

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

隐藏