鏈表中倒數(shù)第k個(gè)結(jié)點(diǎn)

題目來(lái)源:??途W(wǎng)--鏈表中倒數(shù)第k個(gè)結(jié)點(diǎn)

題目描述

輸入一個(gè)鏈表,輸出該鏈表中倒數(shù)第k個(gè)結(jié)點(diǎn)。

解題思路

整體思路就是兩步走,兩人剛開(kāi)始都是1,
第一個(gè)人走到K+1時(shí),第二個(gè)人也開(kāi)始走,兩個(gè)人速度一樣。
當(dāng)?shù)谝粋€(gè)人走完時(shí),第二個(gè)人剛好比第一個(gè)人慢了 K

提交代碼

// 整體思路就是兩步走,兩人剛開(kāi)始都是1,
// 第一個(gè)人走到K+1時(shí),第二個(gè)人也開(kāi)始走,兩個(gè)人速度一樣。
static ListNode method(ListNode head, int k) {
    // 非法輸入
    if (k <= 0 || head == null) {
        return null;
    }

    ListNode result = head;
    ListNode current = head;
    int i = 1;
    for (; current != null; i++) {
        // 如果current已經(jīng)走到了第 K+1 個(gè),result開(kāi)始往后移
        // 因?yàn)?result 本來(lái)就指向第 1 個(gè)
        if (i > k) {
            result = result.next;
        }
        // 鏈表向后移動(dòng)
        current = current.next;
    }
    return i > k ? result : null;
}

本地測(cè)試代碼

public class FindKthToTail {
    public static void main(String[] args) {
        ListNode head = new ListNode(1);
        ListNode current = head;
        // 生成長(zhǎng)度為5的鏈表
        for (int i = 2; i <= 5; i++) {
            current.next = new ListNode(i);
            current = current.next;
        }
        System.out.println(method(head,0).val);
    }
    
    // 整體思路就是兩步走,兩人剛開(kāi)始都是1,第一個(gè)人走到K+1時(shí),第二個(gè)人也開(kāi)始走,兩個(gè)人速度一樣。
    static ListNode method(ListNode head, int k) {
        // 非法輸入
        if (k <= 0 || head == null) {
            return null;
        }

        ListNode result = head;
        ListNode current = head;
        int i = 1;
        for (; current != null; i++) {
            // 如果current已經(jīng)走到了第 K+1 個(gè),result開(kāi)始往后移
            // 因?yàn)?result 本來(lái)就指向第 1 個(gè)
            if (i > k) {
                result = result.next;
            }
            // 鏈表向后移動(dòng)
            current = current.next;
        }
        return i > k ? result : null;
    }
}

class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容