链表中倒数第k个结点

链表中倒数第k个结点

http://www.nowcoder.com/questionTerminal/529d3ae5a407492994ad2a246518148a

程序特点:利用了try catch语句处理了输入的链表长度小于k的情况,并且这样避免了if语句。

public class Solution {
    public ListNode FindKthToTail(ListNode head,int k) {
        ListNode element_k, pointer;// head储存指针当前位置开始的倒数第k个元素
        element_k = pointer = head;

        // 先进行遍历,到链表的第k+1个元素结束
        try {
            for (int i = 0; i < k; i++) {
                pointer = pointer.next;
            }
        } catch (java.lang.NullPointerException e) {
            return null;
        }

        // 再遍历完剩下的部分,这时候需要更新element_k
        while (pointer != null) {
            element_k = element_k.next;
            pointer = pointer.next;
        }

        return element_k;
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
02-26 16:52
宜春学院 Java
Lunarloop:董事长亲自到ssob来要IM项目的技术方案来了
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务