亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

鏈表中倒數第k個結點-算法學習

2023-07-11 10:13:25
1
0

題目詳情:
輸入一個(ge)鏈(lian)表(biao),輸出該鏈(lian)表(biao)中倒(dao)數第k個(ge)結點(dian)。

示例:
輸入:1,{1,2,3,4,5}
輸出:{5}

解題思路:
首先定義鏈表的數據結構,可以使用對象表示節點,包含一個值和下一個節點的引用。
創(chuang)建一個(ge)(ge)函數(shu)(shu) findKthFromEnd,接收(shou)一個(ge)(ge)鏈(lian)表(biao)頭節點(dian)和整數(shu)(shu) k 作為參數(shu)(shu)。在函數(shu)(shu)內部(bu),使用雙指(zhi)針法來查(cha)找倒數(shu)(shu)第 k 個(ge)(ge)節點(dian)。

代碼實現:
class ListNode {
    constructor(val, next = null) {
        this.val = val;
        this.next = next;
    }
}

function findKthFromEnd(head, k) {
    let slow = head;
    let fast = head;

    // 快指針先移動 k 步
    for (let i = 0; i < k; i++) {
        if (fast === null) {
            return null; // 如果鏈表長度小于 k,返回 null
        }
        fast = fast.next;
    }

    // 快慢指針一起移動,直到快指針到達鏈表尾部
    while (fast !== null) {
        slow = slow.next;
        fast = fast.next;
    }

    return slow; // 返回倒數第 k 個節點
}
// 構造鏈表:1 -> 2 -> 3 -> 4 -> 5
const head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
head.next.next.next = new ListNode(4);
head.next.next.next.next = new ListNode(5);

const k = 3; // 倒數第 k 個節點的位置
const result = findKthFromEnd(head, k); // 輸出 3

// 輸出倒數第 k 個節點
if (result !== null) {
    console.log(result.val);
} else {
    console.log("鏈表長度小于 k");
}

0條評論
作者已關閉評論
t****m
98文(wen)章數
1粉(fen)絲(si)數(shu)
t****m
98 文章(zhang) | 1 粉絲
t****m
98文章數(shu)
1粉絲數
t****m
98 文章 | 1 粉絲
原創

鏈表中倒數第k個結點-算法學習

2023-07-11 10:13:25
1
0

題目詳情:
輸(shu)入一個鏈表(biao),輸(shu)出該鏈表(biao)中倒數第k個結(jie)點。

示例:
輸入:1,{1,2,3,4,5}
輸出:{5}

解題思路:
首先定義鏈表的數據結構,可以使用對象表示節點,包含一個值和下一個節點的引用。
創(chuang)建一(yi)(yi)個函數(shu)(shu) findKthFromEnd,接收(shou)一(yi)(yi)個鏈(lian)表頭節點(dian)和整數(shu)(shu) k 作為參(can)數(shu)(shu)。在(zai)函數(shu)(shu)內部,使用(yong)雙指針法來查找倒數(shu)(shu)第 k 個節點(dian)。

代碼實現:
class ListNode {
    constructor(val, next = null) {
        this.val = val;
        this.next = next;
    }
}

function findKthFromEnd(head, k) {
    let slow = head;
    let fast = head;

    // 快指針先移動 k 步
    for (let i = 0; i < k; i++) {
        if (fast === null) {
            return null; // 如果鏈表長度小于 k,返回 null
        }
        fast = fast.next;
    }

    // 快慢指針一起移動,直到快指針到達鏈表尾部
    while (fast !== null) {
        slow = slow.next;
        fast = fast.next;
    }

    return slow; // 返回倒數第 k 個節點
}
// 構造鏈表:1 -> 2 -> 3 -> 4 -> 5
const head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
head.next.next.next = new ListNode(4);
head.next.next.next.next = new ListNode(5);

const k = 3; // 倒數第 k 個節點的位置
const result = findKthFromEnd(head, k); // 輸出(chu) 3

// 輸出倒數第 k 個節點
if (result !== null) {
    console.log(result.val);
} else {
    console.log("鏈表長度小于 k");
}

文章來自個人專欄
文章(zhang) | 訂閱
0條評論
作者已關閉評論
作者已關閉評論
0
0