网站建设的需求是什么,seo课程培训要多少钱,长沙租房网,四川简阳建设局招标公告网站提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣1660. 纠正二叉树二、力扣100. 相同的树三、力扣572. 另一棵树的子树四、力扣101. 对称二叉树 前言 判断树是否相等#xff0c;就直接遍历就可以。判断… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 前言一、力扣1660. 纠正二叉树二、力扣100. 相同的树三、力扣572. 另一棵树的子树四、力扣101. 对称二叉树 前言 判断树是否相等就直接遍历就可以。判断一颗树是否是另外一棵树的子树遍历当前树遍历每一个节点的时候调用判断树是否相同的方法。判断是否是对称二叉树原树的左子树中的每一个孩子与原树的右子树的每一个孩子进行比较比较规则是原树的左子树中的每一个孩子的左孩子与原树的右子树的每一个孩子的右孩子比较原树的左子树中的每一个孩子的右孩子与原树的右子树的每一个孩子的左孩子比较
一、力扣1660. 纠正二叉树
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {HashSetTreeNode set new HashSet();public TreeNode correctBinaryTree(TreeNode root) {if(root null){return null;}if(set.contains(root.right)){return null;}set.add(root);root.right correctBinaryTree(root.right);root.left correctBinaryTree(root.left);return root;}
}二、力扣100. 相同的树
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {public boolean isSameTree(TreeNode p, TreeNode q) {if(p null q null){return true;}if(p null || q null){return false;}if(p.val ! q.val){return false;}return isSameTree(p.left,q.left) isSameTree(p.right,q.right);}
}三、力扣572. 另一棵树的子树
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {public boolean isSubtree(TreeNode root, TreeNode subRoot) {if(root null){return subRoot null;}if(fun(root,subRoot)){return true;}return isSubtree(root.left,subRoot) || isSubtree(root.right,subRoot);}public boolean fun(TreeNode p, TreeNode q){if(p null q null){return true;}if(p null || q null){return false;}if(p.val ! q.val){return false;}return fun(p.left,q.left) fun(p.right , q.right);}
}四、力扣101. 对称二叉树
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {public boolean isSymmetric(TreeNode root) {return fun(root.left,root.right);}public boolean fun(TreeNode l, TreeNode r){if(l null r null){return true;}if(l null || r null){return false;}if(l.val ! r.val){return false;}return fun(l.left , r.right) fun(l.right , r.left);}
}