、CF1454E Number of Simple Paths 题意: 给出n个点n条边的连通图,求出简单路径大于等于1的数量。 思路: n个点n条边所以是个基环树,先把环找出来,对于环上的每棵树遍历一下,子树内贡献为size(size-1)/2,到环的贡献为size*(2x-1),子树之间的贡献为 ...
分类:
其他好文 时间:
2021-06-17 16:35:54
阅读次数:
0
二叉树遍历 若将二叉树分为根节点,左子树,右子树三部分,则前中后序便对应根节点的访问次序。 1 前序遍历 先访问根节点,然后前序遍历左子树,再前序遍历右子树。 2 中序遍历 从根节点开始,先中序遍历左子树,然后访问根节点,再中序遍历右子树,整个访问次序为从左到右。 3 后序遍历 从根节点开始,从左到 ...
分类:
其他好文 时间:
2021-06-08 22:35:30
阅读次数:
0
我们只看看最基础的汉诺塔问题吧,左神的进阶问题就算了。。。:smiley: 很多人都将汉诺塔是什么,解题流程,然后一个代码就结束。 可是我对汉诺塔递归过程总是很迷惑,感觉很抽象,以下是我的理解。 比如汉诺塔的打印: public void hanoi(int n) { if (n > 0) { fu ...
分类:
其他好文 时间:
2021-06-04 19:29:33
阅读次数:
0
之前为了求快,认为递归和动态规划是一类的,导致做了不少递归的题只能想到思路,但就是没法代码实现出来!!! 现在学习二叉树,我觉得对学习递归真的很有帮助! 二叉树的基础:遍历二叉树 二叉树遍历是基础,如果我们不能遍历二叉树,又如何对二叉树的节点进行操作呢? 二叉树的节点: /** * @author ...
分类:
其他好文 时间:
2021-05-24 14:38:57
阅读次数:
0
概念 一棵二叉树由根结点、左子树和右子树三部分组成,若规定 D、L、R 分别代表遍历根结点、遍历左子树、遍历右子树,则二叉树的遍历方式有 6 种:DLR、DRL、LDR、LRD、RDL、RLD。由于先遍历左子树和先遍历右子树在算法设计上没有本质区别,所以,只讨论三种方式: DLR--前序遍历(根在前 ...
分类:
其他好文 时间:
2021-05-24 07:30:52
阅读次数:
0
A.遍历二叉树是以一定的规则将二叉树中的结点排列成一个线性序列(DLR、LDR、LRD、DRL、RLD、RDL),这实质上是对非线性结构进行线性化操作。 B.将二叉树线索化能够不用递归,通过找到后继来线性地遍历二叉树 C.前驱、后继的信息是在动态遍历的过程中才知道的,需要保存下来,而n个结点的二叉链 ...
分类:
其他好文 时间:
2021-04-05 12:06:37
阅读次数:
0
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # 递归 # 时间复杂度:O(n ...
分类:
其他好文 时间:
2021-03-29 12:51:26
阅读次数:
0
1.1、先序遍历 根结点-左子树-右子树 // 指针 void preorder(node* root) { if(root==NULL) return; //空树,递归边界 printf("%d\n",root->data); preoder(root->lchild); preoder(root ...
分类:
其他好文 时间:
2021-02-09 12:23:21
阅读次数:
0
、数据结构与算法 1.二叉树前序、中序、后续遍历方式(递归以及非递归) 2.二叉树的深度以及广度遍历方式 3.二叉树遍历情况中所有连续节点的最大的值 4.求数组所有可能的子数组 5.给定一个数,求一个有序数组的两个数的和满足这个数(可以拓展一下变成两个无序的数组) 6.求一个数组的第二大值 7.大文 ...
分类:
其他好文 时间:
2021-01-22 12:22:20
阅读次数:
0
题目 本题目一开始想要通过二叉树遍历KMP匹配,但看来实现比较复杂 不如直接暴力匹配,本题和LeetCode100.相同的树有共通之处 1 class Solution { 2 public: 3 bool isSubtree(TreeNode* s, TreeNode* t) { 4 if(!s ...
分类:
其他好文 时间:
2021-01-12 11:17:21
阅读次数:
0