草庐IT

leetcode 572. Subtree of Another Tree 另一棵树的子树 (简单)

一、题目大意给你两棵二叉树root和subRoot。检验root中是否包含和subRoot具有相同结构和节点值的子树。如果存在,返回true;否则,返回false。二叉树tree的一棵子树包括tree的某个节点和这个节点的所有后代节点。tree也可以看做它自身的一棵子树。示例1:输入:root=[3,4,5,1,2],subRoot=[4,1,2]输出:true示例2:输入:root=[3,4,5,1,2,null,null,null,null,0],subRoot=[4,1,2]输出:false提示:root树上的节点数量范围是[1,2000]subRoot树上的节点数量范围是[1,1000

leetcode 572. Subtree of Another Tree 另一棵树的子树 (简单)

一、题目大意给你两棵二叉树root和subRoot。检验root中是否包含和subRoot具有相同结构和节点值的子树。如果存在,返回true;否则,返回false。二叉树tree的一棵子树包括tree的某个节点和这个节点的所有后代节点。tree也可以看做它自身的一棵子树。示例1:输入:root=[3,4,5,1,2],subRoot=[4,1,2]输出:true示例2:输入:root=[3,4,5,1,2,null,null,null,null,0],subRoot=[4,1,2]输出:false提示:root树上的节点数量范围是[1,2000]subRoot树上的节点数量范围是[1,1000

P1352 没有上司的舞会+P1122 最大子树和(树形DP入门)

前言今日偶然打开\(oi-wiki\),发现树形\(DP\)例题正好是之前在洛谷上鸽着的一道题。所以......\(\color{red}{很高兴以这样的方式认识你,树形DP!}\)这例题造的太好了,简直是无痛入门(感动.jpg)P1352没有上司的舞会题目传送门~思路剖析状态定义\(dp_i\)表示的是以\(i\)为根节点的子树所获得的最大价值。由于每个节点代表着一位人物,有来与不来两种状态,所以再加一维状态变量。\(dp_{i,0}\)表示以\(i\)为根节点的子树所能获得的最大价值,且这位人物没来。\(dp_{i,1}\)则对应来了的状态。状态转移方程现在有个周年庆宴会,宴会每邀请来一个

P1352 没有上司的舞会+P1122 最大子树和(树形DP入门)

前言今日偶然打开\(oi-wiki\),发现树形\(DP\)例题正好是之前在洛谷上鸽着的一道题。所以......\(\color{red}{很高兴以这样的方式认识你,树形DP!}\)这例题造的太好了,简直是无痛入门(感动.jpg)P1352没有上司的舞会题目传送门~思路剖析状态定义\(dp_i\)表示的是以\(i\)为根节点的子树所获得的最大价值。由于每个节点代表着一位人物,有来与不来两种状态,所以再加一维状态变量。\(dp_{i,0}\)表示以\(i\)为根节点的子树所能获得的最大价值,且这位人物没来。\(dp_{i,1}\)则对应来了的状态。状态转移方程现在有个周年庆宴会,宴会每邀请来一个

二叉树交换左右子树递归以及非递归算法

递归方式基本思想:1、当待处理节点非空时,判断其左右孩子是否不同时为空:若是,转到2、否则分别递归调用左右子树进行操作。2、新建一个辅助结点,执行交换操作。3、递归调用非空的左右子树进行操作。BiTree*exchangeChild(BiTree*&T){ if(T==null)returnnull;//当结点为null直接returnnull if(T->lchild!=null||T->rchild!=null){//当待处理结点左右孩子不同时为空时交换 BiTNode*temp=T->lchild;//辅助结点,用于交换 T->lchild=T->rchild; T->rchild

二叉树交换左右子树递归以及非递归算法

递归方式基本思想:1、当待处理节点非空时,判断其左右孩子是否不同时为空:若是,转到2、否则分别递归调用左右子树进行操作。2、新建一个辅助结点,执行交换操作。3、递归调用非空的左右子树进行操作。BiTree*exchangeChild(BiTree*&T){ if(T==null)returnnull;//当结点为null直接returnnull if(T->lchild!=null||T->rchild!=null){//当待处理结点左右孩子不同时为空时交换 BiTNode*temp=T->lchild;//辅助结点,用于交换 T->lchild=T->rchild; T->rchild