Problem 10
key point:找到mid node
option 1:
数一下一共有多少的node
再从头出发走n/2个node
option 2:
快慢指针,过例子看
初始条件:slow = fast = head
截止条件:fast == null/ fast.next == null
ListNode deleteMiddle(ListNode head) {
if (head == null) {
return null;
}
ListNode dummy = new ListNode();
dummy.next = head;
ListNode prev = dummy;
ListNode slow = head;
ListNode fast = head;
while (fast != null || fast.next != null) {
slow = slow.next;
prev = prev.next;
fast = fast.next.next;
}
prev.next = slow.next;
return dummy.next;
}
Last updated