LeetCode 96——不同的二叉搜索树

2018-11-20
阅读 3 分钟
1.3k
以 $1, 2, \cdots, n$ 构建二叉搜索树,其中,任意数字都可以作为根节点来构建二叉搜索树。当我们将某一个数字作为根节点后,其左边数据将构建为左子树,右边数据将构建为右子树。因此,这是一个递归问题。

LeetCode 707 ——设计链表

2018-11-14
阅读 4 分钟
3.4k
1. 题目 2. 解答 用一个单链表来实现,只有一个头指针。因为不能建立哨兵结点,因此要特别注意是否在头结点处操作。 {代码...} 获取更多精彩,请关注「seniusen」!

LeetCode 92 ——反转链表 II

2018-11-14
阅读 2 分钟
2k
我们需要先找到第 m 个结点及其上一个结点,然后将从 m 到 n 的结点进行反转,最后依次将 m 到 n 反转后的结点和 n 之后的结点放入原链表中即可。

LeetCode 86 ——分隔链表

2018-11-14
阅读 2 分钟
2k
从前向后遍历链表,将结点值小于 x 的结点放入到新链表 1 中,将结点值大于等于 x 的结点放入新链表 2 中。最后,将新链表 2 拼接在新链表 1 后面即可。

LeetCode 82 ——删除排序链表中的重复元素 II

2018-11-14
阅读 2 分钟
1.8k
1. 题目 2. 解答 新建一个链表,并添加一个哨兵结点,从前向后开始遍历链表。 如果下一个结点的值和当前结点的值相等,则循环向后遍历直到找到一个和当前结点值不相等的结点; 反之,如果下一个结点的值和当前结点的值不相等,此值即为原始链表中没有重复出现的数字,将其加入到新链表中。 然后继续向后遍历。最后, 如...

LeetCode 83 —— 删除排序链表中的重复元素

2018-11-14
阅读 1 分钟
1.6k
1. 题目 2. 解答 从前向后遍历链表,如果下一个结点的值和当前结点的值相同,则删除下一个结点,否则继续向后遍历。 {代码...} 获取更多精彩,请关注「seniusen」!

LeetCode 24——两两交换链表中的节点

2018-11-14
阅读 2 分钟
2.6k
新建一个哨兵结点作为头结点,然后每次交换相邻两个结点。并依次将它们连接到新链表中去,再将原链表中后面的结点也串到新链表后面。直至到达链尾或者剩余一个节点,则此时返回新链表的头结点,也即是原始链表的第二个结点。