摘要:
题目19 删除链表的倒数第N个节点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例1: 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2: 输入:head = [1], n = 1 输出:[] 示例 3: 输入:head = [1 阅读全文
摘要:
题目24 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例1: 输入:head = [1,2,3,4] 输出:[2,1,4,3] 示例 2: 输入:head = [] 输出:[] 示例 3 阅读全文
摘要:
题目206 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] 双指针思路: 阅读全文
摘要:
题目203 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 输入:h 阅读全文
摘要:
以==引用计数==为主,==标记清除==和==分代回收==为辅,分代回收是建立在标记清除之上。 引用计数:有一个ob_refcnt记录对象引用次数,当一个对象有新的引用时,值加1,当引用它的对象被删除时,值减一,当值为0时,这个对象的生命结束,启用垃圾回收机制回收该对象。 优点:简单,实时性高(只要 阅读全文