求强连通/割点/桥 step1 将图深搜,形成深搜树,按遍历顺序标号->dfn[i] step2 将low[i]初始化为dfn[i] step3 回溯时low[i]=min(low[i],low[i的儿子]) 判断 DFN[]作为这个点搜索的次序编号(时间戳) LOW[]作为每个点在这颗树中的,子树 ...
分类:
编程语言 时间:
2021-03-16 11:48:55
阅读次数:
0
https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcof/ 想清楚问题,然后再下代码 树 B 是否是树 A 的子树 先序遍历树 A,然后看树 A 从根是否与树 B 有相等的一部分 也就是说 B <= A 如果 B 是空的,就代表 B已经遍历完了, ...
分类:
其他好文 时间:
2021-03-16 11:45:54
阅读次数:
0
ref #include <stdio.h> #include <stdlib.h> typedef struct node { int data; struct node *lchild, *rchild; }bitree_t; bitree_t *createNode(int data) { b ...
分类:
编程语言 时间:
2021-03-15 11:35:22
阅读次数:
0
二叉树的前序、中序、后序遍历 每个节点会被经过3次,前序、中序、后序的区别在于:在哪一次经过该节点时对其进行访问。 2. 递归实现 traverseRecursive(BiTrNode<T>* node): basecase: if(node == nullptr) return; general: ...
分类:
编程语言 时间:
2021-03-15 11:08:04
阅读次数:
0
236. 二叉树的最近公共祖先 题目描述 相似题目:https://www.cnblogs.com/GarrettWale/p/14406641.html 题解分析 此题是利用二叉树的后序遍历来求解最近公共祖先。 递归的出口是遍历到叶子结点或者当前结点(root)等于待搜索的结点(p或者q),此时需 ...
分类:
其他好文 时间:
2021-03-15 10:51:02
阅读次数:
0
1.二叉树的前序遍历:输出当前结点的值之后再去判断是否含有子节点如果有就继续调用递归;2.二叉树的中序遍历:先判断当前节点的一个子节点是否存在并递归之后再去输出当前节点的值,再继续判断另一边的节点;3.二叉树的后序遍历:先判断左右两边的子节点是否存在,如果存在就去递归,直到最后的递归完成后再输出当前 ...
分类:
其他好文 时间:
2021-03-15 10:48:20
阅读次数:
0
题意 要让链表里的所有负数的结点排在非负数的前面,以及让所有的[0, K]的数字放在(k, ∞)的前面,而且要保持相对顺序不变。保证链表不为空 思路 依次遍历链表的每个结点进行标记,第一趟取出负数,第二趟取出[0, K]内的数字,第三趟取出剩下没有取的数字,标记的方式是令data = 100010, ...
分类:
其他好文 时间:
2021-03-15 10:43:58
阅读次数:
0
问题 序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。 示例 输入: "9,3,4,#,#,1,#,#,2,#,6,#,#" 输出: true 解答 class Solution { public: ...
分类:
其他好文 时间:
2021-03-12 14:19:20
阅读次数:
0
快速排序 原理:递归+分治 从数组中选取一个基准点,将数组中小于这个基准点的元素放到基准点左边,大于这个基准点的元素放到右边 默认每次选取最后一个元素当作基准点,定义变量i,j分别指向数组的左端和右端前一个元素 i 向右移动扫描比基准点大的数, 如果比基准点小或等于则继续移动, j 向左移动扫描比基 ...
分类:
编程语言 时间:
2021-03-12 14:17:58
阅读次数:
0
Java流程控制 1.用户交互Scanner Scanner对象 之前我们学习的基本语法中,并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner,它是 Java5 的新特性,我们可以通过Scanner 类来获取用户输入 基本语法 ...
分类:
编程语言 时间:
2021-03-12 13:34:15
阅读次数:
0