摘要:
[toc] 描述 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 。 说明 :不允许修改给定的链表。 进阶 : 你是否可以不用额外空间解决此题? 解法一:哈希表 思路 最直接的解法就是利用一个集合保存每次遍历的节点的引用。之后,从链表头开始遍历,每遍历一个节点,就判断该节点的引用 阅读全文
摘要:
[TOC] 描述 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 示例 2: 示例 3: 解法 1:判断整数 $x$ 的二进制表示中是否只有一位为1 实现方式 1:除以 2 让我们先来看一下 2 的幂有什么规律, | n | 2 的幂 | 二进制表示 | | | | | | 0 阅读全文
摘要:
9_回文数(Palindrome Number) [TOC] 描述 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 示例 2: 示例 3: 进阶: 你能不将整数转为字符串来解决这个问题吗? 解法一:转化为字符串的比较 思路 将整数转化为字符串,比 阅读全文
摘要:
169_求众数(Majority Element) 这道题有 5 种方法,8 种实现,详细分析可以看 花花酱 的 "YouTube 专栏" 。 [TOC] 描述 给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数 大于 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 阅读全文
摘要:
160_相交链表 [TOC] 描述 编写一个程序,找到两个单链表相交的起始节点。 例如,下面的两个链表 : 在节点 c1 开始相交。 注意: 如果两个链表没有交点,返回 . 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O( n ) 时间复杂度,且仅用 O 阅读全文
摘要:
21_合并两个有序链表 [TOC] 描述 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 解法一:迭代 思路 因为两个链表都是有序链表(递增),因此可以很容易地找出两个链表中的最小元素,即比较两个链表表头的元素,时间复杂度是 $O(1)$ 的。我 阅读全文
摘要:
237_删除链表中的节点 [TOC] 描述 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 head = [4,5,1,9],它可以表示为: 示例 1: 示例 2: 说明: 链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为 阅读全文
摘要:
141_环形链表 [TOC] 描述 给定一个链表,判断链表中是否有环。 进阶: 你能否不使用额外空间解决此题? 解法一:哈希表 思路 判断一个链表是否包含环,可以转化为判断是否有一个节点之前已经出现过。非常自然的一个想法就是:遍历链表的每个节点,用一个哈希表记录每个节点的引用(或内存地址);如果能够 阅读全文
摘要:
更多 LeetCode 题解笔记可以访问我的 "github" 。 [TOC] 描述 反转一个单链表。 示例 : 进阶 : 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 解法一:迭代 思路 遍历链表的每个节点,将每个节点的 指针指向它的前一个节点(即前驱)。因为这是一个单向链表,并不存在 阅读全文
摘要:
【LeetCode题解】136_只出现一次的数字 [TOC] 描述 给定一个 非空 整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 示例 2: 方法一:列表操作 思路 新 阅读全文