题目: 有序链表转换二叉搜索树:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 思路: 看到二叉树要想到用递归的思想,为了找到根节点,使用双指针法,快指针是慢指针速度的二倍,快指针到 ...
分类:
编程语言 时间:
2020-05-03 21:42:05
阅读次数:
94
题目: 重排链表:给定一个单链表 L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 思路: 使用了懒人做法,使用了栈,应该还有更好的方法,想到后做补充。 程序: # Defin ...
分类:
编程语言 时间:
2020-05-03 12:37:31
阅读次数:
214
单链表 创建单链表的过程是一个动态生成表的过程,从“空表”的初始转态起,依次建立各元素结点,并逐个插入链表 单链表的创建分为“头插法”和“尾插法” 头插法:把新加进的元素放在表头(头结点)后的第一个位置 尾插法:新加进的元素放在表中最后一个位置 单链表的正表删除 声明结点 p,q 将第一个结点(不算 ...
分类:
其他好文 时间:
2020-05-03 00:58:10
阅读次数:
63
循环链表 单链表的局限性:如果不从头结点出发,就无法访问的全部节点。 循环链表定义:将单链表终端结点的指针由空指针改为指向头结点;使单链表形成一个环,称单循环链表,简称循环链表 注:循环链表不一定有头结点。 ...
分类:
其他好文 时间:
2020-05-03 00:42:24
阅读次数:
58
最近博主在B站学习算法与数据结构,视频链接: https://www.bilibili.com/video/BV1E4411H73v?p=23 这是一道课后练习,题目是:合并两个有序的单链表,使合并后的链表依然有序。 代码如下,合并部分的代码是mergeTwoSingleLinkedList: 1 ...
分类:
编程语言 时间:
2020-05-02 21:06:53
阅读次数:
68
题目: 给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2: 给定链表 1 ...
分类:
其他好文 时间:
2020-05-01 22:38:26
阅读次数:
73
题目: 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Refere ...
分类:
其他好文 时间:
2020-05-01 18:58:52
阅读次数:
53
题目: 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返 ...
分类:
其他好文 时间:
2020-05-01 17:07:02
阅读次数:
60
题目: 反转链表:反转一个单链表。 进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 思路: 思路一:使用栈的思想。 思路二:使用迭代。 思路三:使用递归。 程序1: # Definition for singly-linked list. # class ListNode: # de ...
分类:
编程语言 时间:
2020-05-01 17:01:32
阅读次数:
66
1025 反转链表 (25分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4;如果 K 为 4,则输出应该为 4→3→2→1→5→6,即最 后不到 K 个元素不反转。 输入格 ...
分类:
其他好文 时间:
2020-05-01 14:52:01
阅读次数:
37