一.环形单链表的约瑟夫问题 二.判断一个链表是否为回文结构 三.将单向链表按某只划分成左边小.中间相等.右边大的形式 四.复制含有随机指针节点的链表 五.两个单链表相交的一系列问题 六.将单链表的每K个节点之间逆序 七.将搜索二叉树转换成双向链表…
单链表Node节点类 public class Node { public int val; public Node next; public Node(int val) { this.val = val; } } 双链表DoubleNode类 public class DoubleNode { public int val; public DoubleNode last; public DoubleNode next; public DoubleNode(int val) { this.val…
1.题目描述 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 2.解法一:(空间复杂度O(n)) 遍历一遍链表压栈,借助栈把链表倒序,然后依次比较“原链表元素”和“新栈中元素”,如果都相等则返回true,否则返回false. 这样简单粗暴,代码的主体包含在解法二中了,这里不列出了. 另外,这种解法的时间要求能不能通过…
1 逆序输出的数列(10分) 题目内容: 你的程序会读入一系列的正整数,预先不知道正整数的数量,一旦读到-1,就表示输入结束.然后,按照和输入相反的顺序输出所读到的数字,不包括最后标识结束的-1. 输入格式: 一系列正整数,输入-1表示结束,-1不是输入的数据的一部分. 输出格式: 按照与输入相反的顺序输出所有的整数,每个整数后面跟一个空格以与后面的整数区分,最后的整数后面也有空格. 输入样例: 1 2 3 4 -1 输出样例: 4 3 2 1 时间限制:2000ms内存限制:128000kb…
5.1可变数组 5.2链表 5.1可变数组 Resizable Array Think about a set of functions that provide a mechanism of resizable array of int. Growable Get the current size Access to the elements The Interface Array array_create(int init_size); void array_free(Array *a);…
--------------------------------------------------------------------------------------- 可变数组: array.h #ifndef _ARRAY_H_ #define _ARRAY_H_ typedef struct { int *array; int size; } Array; // Array不定义成指针类型 *Array 的原因:定义成变量使用范围更广,如果定义一个指针类型,那么 array p 其实…
本节主要内容: 1. 结构体和方法2. 接口 1. 结构体和方法 (1). 用来自定义复杂数据结构     (2). struct里面可以包含多个字段(属性)     (3). struct类型可以定义方法,注意和函数的区分     (4). struct类型是值类型     (5). struct类型可以嵌套     (6). Go语言没有class类型,只有struct类型 (1). struct 声明:     type 标识符 struct {           field1 type…
链表是一种物理存储单元上的非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的.相比于线性表的顺序结构,链表比较方便插入和删除操作.本文将讲解如何模拟一个链表. //链表的节点类 class ListNode { //链表的节点由两部分组成:数据域.指针域 //添加一个整形类型的数组属性,作为链表的数据域 var content:Int //添加一个节点类型的属性,作为存储下一个节点地址的指针 var nextNode: ListNode? //节点类初始化方法 init…
方式1:借助栈 空间辅助度是O(N) 方式2: 借助栈 空间复杂度是 O(n/2).只存后半个链表 方式3: 反转后半个链表  最后再反转回来 package my_basic.class_3; import java.util.Stack; //是否是回文结构 121 1221, public class Code_11_IsPalindromeList { public static class Node{ int value; Node next; public Node(int valu…
一.  线性表的链式存储结构 1.        顺序存储结构不足的解决办法 前面我们讲的线性表的顺序存储结构.它是有缺点的,最大的缺点就是插入和删除时需要移动大量元素,这显然就需要耗费时间.能不能想办法解决呢? 要解决这个问题,我们就得考虑一下导致这个问题的原因. 为什么当插入和删除时,就要移动大量的元素,仔细分析后,发现原因就在于相邻两个元素的存储位置也是具有邻居关系.它们编号是1,2,3,....,n,它们在内存中的位置也是挨着的,中间没有空隙,当然就无法快速介入,而删除后,当中就会留出空…