要截取鏈表的前n個(gè)元素,可以使用雙指針的方法來實(shí)現(xiàn)。
具體步驟如下:
以下是一個(gè)示例代碼:
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是一個(gè)節(jié)點(diǎn)類,其中包括一個(gè)整型值val和一個(gè)指向下一個(gè)節(jié)點(diǎn)的指針next。truncate方法接收一個(gè)頭節(jié)點(diǎn)和一個(gè)整數(shù)n作為參數(shù),返回截取后的鏈表頭節(jié)點(diǎn)。