leetcode 328. Odd Even Linked List

2018-03-17
阅读 2 分钟
1.9k
将一个链表中的节点按照奇数位上的节点在前,偶数位上的节点在后重新排序。这里需要注意的是节点之间的相对顺序不可以改变。即1->2->3->4不可以变为1->3->4->2,只能是1->3->2->4。

leetcode138. Copy List with Random Pointer

2017-09-16
阅读 3 分钟
1.8k
假设存在这样一个链表,在链表的每一个节点中,除了记录了自身值和指向下一个节点的指针,还有一个随机指针指向链表中任意一个节点。现在要求深度复制这份链表,在不改变原链表内容的情况下,创建一组新的对象,该组对象中的值和原链表中的值相同。

leetcode141-142. Linked List Cycle I & II

2017-08-23
阅读 2 分钟
1.7k
还有一种方法是指将链表的结果给拆掉,一旦遍历过当前节点,就将当前节点的下一个指针指向dummy节点。如果有环,就会重复遇到这个指向dummy的节点。则该链表有环,且该节点就是环的起始节点。但是这个方法会毁坏原来链表的数据结构。

leetcode109. Convert Sorted List to Binary Search Tree

2017-08-07
阅读 1 分钟
1.7k
在这里需要注意的是,因为提供的数据结构为链表,所以我们必须顺序遍历才能知道该链表的长度以及该链表的中间位置。在这里,我们可以采用递归的形式,而且在递归中我们通过双指针的方式找到其中的中间节点。并依次递归左子节点和右子节点。

leetcode86. Partition List

2017-07-09
阅读 3 分钟
1.4k
该思路需要我们记录3个节点。当前节点的前一个节点currentPrev,插入位置的前一个节点prev,以及记录初始位置的节点start。当发现一个需要交换的节点时,先获得这个节点,然后将currentPrev指向节点的后一个节点。之后将当前的节点插入到prev之后。代码如下:

leetcode71. Simplify Path

2017-07-02
阅读 2 分钟
2.8k
标题文字 {代码...} 简化unix风格的绝对路径。这里简单说一下unix风格的路径: .表示当前文件夹,即不进行任何操作 ..表示返回上层文件夹,如果已经至根目录,则不进行任何操作 /表示路径的分割线,多个连续的/等价于/ 这里我们需要将复杂的unix路径,例如/a/./b/../../c/简化成最简形式/c 思路和代码 从直观的角度思考...

leetcode82. Remove Duplicates from Sorted List II

2017-06-29
阅读 2 分钟
2.1k
相比于Remove Duplicates from Sorted List I,这里将重复的元素全部删除。想要了解Remove Duplicates from Sorted List I,请参考我的这篇博客