劍指offer 14:鏈表的倒數第n個節點-- Java實現

劍指offer每日一題算法題(java解法)

方便日後複習,從今天開始。

算法之行始於足下

[編程題]鏈表的倒數第n個節點-- Java實現

------------------------------------------------------------------------------------------------------
題目描述
輸入一個鏈表,輸出該鏈表中倒數第k個結點

解題思路:
1.鏈表的指針不停指向下一個,然後記錄有多少個節點。(注意用新的指針,因爲指針指向了下一個調不回來)
2.倒數第k個也就是正數的第n-k個節點,再用指針指過去即可

/*
public class ListNode {
    int val;
    ListNode next = null;
    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode FindKthToTail(ListNode head,int k) {
        if(head==null){
            return null;
        }
        ListNode node=head;
        int count=0;
        while (node != null) {
             count++;
            node = node.next;
        }
        if (count < k)  return null;
        ListNode p = head;
        for (int i = 0; i < count - k; i++) {
            p = p.next;
        }
        return p;
    }
}


發佈了56 篇原創文章 · 獲贊 11 · 訪問量 2044
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章