共計 564 個字符,預計需要花費 2 分鐘才能閱讀完成。
要截取鏈表的前 n 個元素,可以使用雙指針的方法來實現。
具體步驟如下:
- 定義兩個指針,一個指向鏈表的頭節點 head,另一個指向 null。
- 使用一個計數器 count 來記錄當前遍歷的節點個數。
- 遍歷鏈表,每遍歷一個節點,計數器加 1,直到計數器等于 n 為止。
- 此時第二個指針指向的位置就是需要截取鏈表的位置。
- 截取鏈表前 n 個元素后,將第一個指針指向 null,即將鏈表截斷。
以下是一個示例代碼:
public ListNode truncate(ListNode head, int n) {ListNode dummy = new ListNode(0);
dummy.next = head;
ListNode slow = dummy;
ListNode fast = dummy;
for (int i = 0; i < n; i++) {fast = fast.next;}
while (fast.next != null) {
slow = slow.next;
fast = fast.next;
}
ListNode newHead = slow.next;
slow.next = null;
return newHead;
}
以上代碼中,ListNode 是一個節點類,其中包括一個整型值 val 和一個指向下一個節點的指針 next。truncate 方法接收一個頭節點和一個整數 n 作為參數,返回截取后的鏈表頭節點。
丸趣 TV 網 – 提供最優質的資源集合!
正文完