上回说到建立链表的三种形式,分别是头插法,尾插法,和尾插法MAX😂 👇下面讲一下循环单链表👇 循环单链表,字面意思,就是单链表循环了起来,尾节点在输入结束后不会指向NULL,而是指向了头节点head 酱紫,链表就循环了起来 下面是代码实现 #include <stdio.h> #include ...
分类:
编程语言 时间:
2019-09-28 01:18:48
阅读次数:
175
1,链表是以节点的方式来存储的; 2,每个节点包含data域、next域:指向下一个节点; 3,链表的每个节点不一定是连续的; 4,链表分带头节点的链表,和不带头节点的链表,根据实际情况来决定。 带头节点的单向链表 头节点 1,存放具体数据 2,作用就是作为单链表的头 带头节点的单链表 添加(创建) ...
分类:
其他好文 时间:
2019-09-21 11:08:49
阅读次数:
87
1.首先创建头指针并初始化,即头指针->next=NULL。接着创建链表指针,并用头指针初始化。 2.可用while循环获取信息,直到检测到输入值为0为止。在循环中,给链表指针申请新的内存空间,并初始化,同时因节点增加,指针不断后移。 3.删除函数,头节点单拿出来判断。创建临时指针保存满足条件的节点 ...
分类:
其他好文 时间:
2019-09-16 21:56:44
阅读次数:
162
题目:1-1-2-3-3-3-4-5-6-6-7,删除重复节点后返回2-4-5-7 注:不重复节点判断标准为,和前、后节点都不相同,注意头节点和尾结点要单独判断。 ...
分类:
编程语言 时间:
2019-09-14 14:17:28
阅读次数:
76
方法一:迭代 该方法定义了头节点与尾节点两个变量,通过nextTemp记录指针,指针顺序1->2->3,通过迭代第二步修改引用1<-2<-3。 复杂度分析 时间复杂度:O(n)。 假设 nn 是列表的长度,时间复杂度是 O(n)。 空间复杂度:O(1)。 时间复杂度:O(n)。 假设 nn 是列表的 ...
分类:
其他好文 时间:
2019-09-11 09:45:27
阅读次数:
79
【题目】给定一棵二叉树的头节点head,已知所有节点的值都不一样,返回其中最大的且符合搜索二叉树条件的最大拓扑结构的大小。 【题解】 方法一:二叉树的节点数为N,时间复杂度为O(N2)的方法。 首先来看这样一个问题,以节点h为头的树中,在拓扑结构中也必须以h为头的情况下,怎么找到符合搜索二叉树条件的 ...
分类:
编程语言 时间:
2019-09-08 13:51:10
阅读次数:
160
【题目】给定一棵二叉树的头节点head,按照如下两种标准分别实现二叉树边界节点的逆时针打印。标准一:1.头节点为边界节点。2.叶节点为边界节点。3.如果节点在其所在的层中是最左或最右的,那么也是边界革点。标准二:1.头节点为边界节点。2.叶节点为边界节点。3.树左边界延伸下去的路径为边界节点。4.树 ...
分类:
编程语言 时间:
2019-09-02 23:48:35
阅读次数:
124
【题目】二叉树可以用常规的三种遍历结果来描述其结构,但是不够直观,尤其是二叉树中有重复值的时候,仅通过三种遍历的结果来构造二叉树的真实结构更是难上加难,有时则根本不可能。给定一棵二叉树的头节点head,已知二叉树节点值的类型为32位整型,请实现一个打印二叉树的函数,可以直观地展示树的形状,也便于画出 ...
分类:
编程语言 时间:
2019-09-02 23:36:37
阅读次数:
98
"Leedcode 206" 链表逆序I 从头逆序 图解步骤 备份head.next(原下一节点),修改head.next指向新头,移动修改两链表的头指针(新指向新的节点(原头节点),原再指向下一节点[备份点]) 迭代法 递归法 "LeedCode 92" 链表逆序II 部分逆序 图解步骤 迭代法 ...
分类:
其他好文 时间:
2019-08-25 14:31:35
阅读次数:
102
题目:输入一个链表,输出该链表中倒数第k个节点。 注: 使用两个指针,一个指针先走k步,然后两个指针同时走,当前一个指针到达链表尾部的时候,后一个指针指向的就是倒数第k个节点。本题要注意输入数据的判读,头节点是否为空,k是否大于0以及k是否小于链表总长度。 ...
分类:
其他好文 时间:
2019-08-14 20:13:42
阅读次数:
75