From fca155be73c2bd60cbb81ad28cb77cfa360db582 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Wed, 20 Feb 2019 00:04:17 +0800 Subject: [PATCH] auto commit --- docs/notes/Java 虚拟机.md | 3 +++ docs/notes/剑指 offer 题解.md | 15 +++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/docs/notes/Java 虚拟机.md b/docs/notes/Java 虚拟机.md index 48845861..023b3831 100644 --- a/docs/notes/Java 虚拟机.md +++ b/docs/notes/Java 虚拟机.md @@ -222,6 +222,7 @@ obj = null;

+ 标记要回收的对象,然后清除。 不足: @@ -231,8 +232,10 @@ obj = null; ### 2. 标记 - 整理 +

+ 让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存。 ### 3. 复制 diff --git a/docs/notes/剑指 offer 题解.md b/docs/notes/剑指 offer 题解.md index 204ffa38..b6e4fecf 100644 --- a/docs/notes/剑指 offer 题解.md +++ b/docs/notes/剑指 offer 题解.md @@ -967,6 +967,8 @@ private void printNumber(char[] number) {

+② 如果链表只有一个节点,那么直接 + ② 否则,就需要先遍历链表,找到节点的前一个节点,然后让前一个节点指向 null,时间复杂度为 O(N)。

@@ -983,10 +985,15 @@ public ListNode deleteNode(ListNode head, ListNode tobeDelete) { tobeDelete.val = next.val; tobeDelete.next = next.next; } else { - ListNode cur = head; - while (cur.next != tobeDelete) - cur = cur.next; - cur.next = null; + if (head == tobeDelete) + // 只有一个节点 + head = null; + else { + ListNode cur = head; + while (cur.next != tobeDelete) + cur = cur.next; + cur.next = null; + } } return head; }