二叉树本身是一种递归的数据类型,二叉树的许多操作离不开递归。非递归遍历包括结点入栈,先访问右子树,再访问根节点,访问左子树,先序和后序的非递归算法有待调试。 #include <stdio.h> #include<stdlib.h> #include<stdbool.h> typedef char ...
分类:
编程语言 时间:
2021-04-12 12:56:41
阅读次数:
0
计算树的结点和树的子叶三种遍历顺序都可以,计算树的深度和树的复制考虑后序遍历的顺序 #include <stdio.h> #include<stdlib.h> #include<stdbool.h> typedef char TElemtype; typedef struct BiTNode { T ...
分类:
其他好文 时间:
2021-04-12 12:56:09
阅读次数:
0
二叉树——105. 从前序与中序遍历序列构造二叉树 题目: 思路: 这题就是考察两种遍历的特点,前序遍历的第一个为root结点,知道了root结点,就可以在中序遍历中知道在root结点之前的为左子树,在root结点之后的为右子树。然后就可以递归的构造出左子树和右子树。 具体实现的时候,就是要借助哈希 ...
分类:
其他好文 时间:
2021-04-12 12:33:14
阅读次数:
0
LeetCode148 排序链表 题目 给定链表的头结点head,返回排序后的链表,按照由小到大的顺序。 案例1 输入:head = [4,2,1,3] 输出:[1,2,3,4] 分析 使用归并排序,先找出中间节点(快慢指针:快指针每次走两步,慢指针每次走一步,当快指针走到链表最后,慢指针所在的位置 ...
分类:
编程语言 时间:
2021-04-10 13:34:31
阅读次数:
0
二叉树——102. 二叉树的层序遍历 题目: 思路: 就是层序遍历,一层层扫下去,然后通过队列去实现,一个队列先暂存这一层的所有结点,然后另一个队列通过push_back的方式,实现从左到右的访问。 代码: class Solution { public: vector<vector<int>> l ...
分类:
其他好文 时间:
2021-04-08 12:59:26
阅读次数:
0
原题链接https://codeforces.com/problemset/problem/8/C 这题自己sb,后面s数组没有加够,出现了空值,调了老半天,我是sb。 题意: 给你n个结点,权值1~n,问你最多能组成多少棵深度不小于 k 的二叉搜索树。 思路:大的树是由小的树构成的,因此可以递推( ...
分类:
其他好文 时间:
2021-04-07 11:25:35
阅读次数:
0
描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { //设置虚拟头结点 ListNode res = new ListNode(-1); ListNode ...
分类:
编程语言 时间:
2021-04-07 10:34:17
阅读次数:
0
先看一个初始化带头结点单链表的例子,LNode是结点变量,LinkList是结点指针变量,等同于LNode* typedef struct LNode{ // 定义单链表节点类型 int data; struct LNode *next; }LNode,*LinkList; 例1、错误的方法:初始化 ...
分类:
编程语言 时间:
2021-04-06 14:42:55
阅读次数:
0
B树又叫B-树,B树的特性 B树中允许一个结点中包含多个key,可以是3个、4个、5个甚至更多,并不确定,需要看具体的实现。现在我们选择一个参数M,来构造一个B树,我们可以把它称作是M阶的B树,那么该树会具有如下特点:每个结点最多有M-1个key,并且以升序排列;每个结点最多能有M个子结点;根结点至 ...
分类:
其他好文 时间:
2021-04-06 14:24:04
阅读次数:
0
02 add two numbers 1. 题目讲解 给定两个链表,每个链表表示一个整数,求这两个整数之和。结果也还是用链表表示。 2. 题解 思路: ? 本质上这道题是两个数带进位的加法。两个对应位置上的和是和对10取余。进位则是和整除10. class Solution { public: Li ...
分类:
其他好文 时间:
2021-04-06 14:12:17
阅读次数:
0