wordpress使用代码同步到twitter,凌哥seo技术博客,棋牌游戏软件开发公司,wordpress发布文章提示更新失败文章目录题目描述思路 代码二刷题目描述
思路很值得看的一道题#xff0c;和之前路径总和 III的双递归思路、结构很像
思路 代码
isSubStructrue() 进行一个前序的遍历#xff1b;通过 || 运算符#xff0c;在找到时直接终止遍历具体函数功能、思路见代码注…
文章目录题目描述思路 代码二刷题目描述
思路很值得看的一道题和之前路径总和 III的双递归思路、结构很像
思路 代码
isSubStructrue() 进行一个前序的遍历通过 || 运算符在找到时直接终止遍历具体函数功能、思路见代码注释
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/
class Solution {// 函数功能遍历判断 B 是否为 A 的子结构public boolean isSubStructure(TreeNode A, TreeNode B) {// 空树不是任意一个树的子结构if(A null || B null){return false;}// 先序以 A 开始的子结构判断 || 左节点继续遍历 || 右节点继续遍历return recursion(A, B) || isSubStructure(A.left, B) || isSubStructure (A.right, B);}// 函数功能判断以A开始的树是否包含子结构B树。boolean recursion(TreeNode A, TreeNode B){// B遍历结束说明完全覆盖了B子结构if(B null){return true;}// A遍历结束 or 节点值不同不是子结构if(A null || A.val ! B.val){return false;}// 当前节点相同继续进行左右子数的判断return recursion(A.left, B.left) recursion(A.right, B.right);}
}二刷
二刷居然忘了思路了 先对当前AB进行符合判断不行的话就再对A.left B、A.right B 进行判断。以此类推isStructure() 是直接对当前节点进行判断
class Solution {public boolean isSubStructure(TreeNode A, TreeNode B) {if(A null || B null) {return false;}return isStructure(A, B) || isSubStructure(A.left, B) || isSubStructure(A.right, B);}public boolean isStructure(TreeNode A, TreeNode B) {if(B null) {return true;}if(A null || A.val ! B.val) {return false;}return isStructure(A.left, B.left) isStructure(A.right, B.right);}
}