首页 > 其他分享 >LeetCode_572_另一个树的子树

LeetCode_572_另一个树的子树

时间:2022-11-01 11:10:37浏览次数:93  
标签:子树 TreeNode 572 right return NULL LeetCode left


题目描述:

给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。

示例 1:
给定的树 s:

3
/ \
4 5
/ \
1 2
给定的树 t:

4
/ \
1 2
返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。

示例 2:
给定的树 s:

3
/ \
4 5
/ \
1 2
/
0
给定的树 t:

4
/ \
1 2
返回 false。

思路:
首先先考虑如何判断两棵树s和t是否相等。
1、根节点相等
2、左子树相等
3、右子树相等
再考虑如何判断t是s的子树
1、t就等于s
2、t是s左子树的子树
3、t是s右子树的子树

/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
//判别两棵树s和t是否相等
bool isEqual(TreeNode* s,TreeNode* t){
if(s==NULL&&t==NULL)
return true;
if(s==NULL||t==NULL)//一个为空,另一个不为空
return false;
if(s->val==t->val)
return isEqual(s->left,t->left)&&isEqual(s->right,t->right);
//s和t的值不相等
return false;
}
//查找t是否为s的子树
/*
1、t就等于s
2、t是s的左子树的子树
3、t是s的右子树的子树
*/
bool isSubtree(TreeNode* s, TreeNode* t) {
if(s==NULL&&t==NULL)
return true;
if(s==NULL||t==NULL)
return false;
//以当前s为根节点,判断t是否为s的子树
return isEqual(s,t)||isSubtree(s->left,t)||isSubtree(s->right,t);

}
};

LeetCode_572_另一个树的子树_子树


标签:子树,TreeNode,572,right,return,NULL,LeetCode,left
From: https://blog.51cto.com/u_15855860/5812287

相关文章

  • LeetCode_617_合并二叉树
    题目描述:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他......
  • LeetCode_637_二叉树的层平均值
    题目描述:给定一个非空二叉树,返回一个由每层节点平均值组成的数组.示例1:输入:3/\920/\157输出:[3,14.5,11]解释:第0层的平均值是3,第1层......
  • LeetCode_653_两数之和 IV - 输入 BST
    题目描述:给定一个二叉搜索树和一个目标结果,如果BST中存在两个元素且它们的和等于给定的目标结果,则返回true。案例1:输入:5/\36/\\247Target=......
  • LeetCode_16. 最接近的三数之和
    题目描述:给定一个包括n个整数的数组nums和一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案......
  • LeetCode_669_修剪二叉搜索树
    题目描述:给定一个二叉搜索树,同时给定最小边界L和最大边界R。通过修剪二叉搜索树,使得所有节点的值在[L,R]中(R>=L)。你可能需要改变树的根节点,所以结果应当返回修剪好的......
  • Leetcode第1662题:检查两个字符串数组是否相等(Check if two string arrays are equival
    解题思路输入是两个字符串数组,包含的元素数目不一定相同,每个元素包含的字符数目也不一定相同。使用两个指针p和i分别记录遍历的元素位置和字符位置。指针p1和p2分别表示......
  • 数据结构 玩转数据结构 5-2 测试自己的Leetcode链表代码
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13434 1重点关注1.1leetCode的代码 如何本地调试详见3.1 1.2遗忘的......
  • [LeetCode] 1293. Shortest Path in a Grid with Obstacles Elimination
    Youaregivenan mxn integermatrix grid whereeachcelliseither 0 (empty)or 1 (obstacle).Youcanmoveup,down,left,orrightfromandtoanem......
  • LeetCode刷题记录.Day2
    移除元素题目链接 27.移除元素-力扣(LeetCode)classSolution{public:intremoveElement(vector<int>&nums,intval){intslotIndex=0;......
  • [Leetcode Weekly Contest]317
    链接:LeetCode[Leetcode]2455.可被三整除的偶数的平均值给你一个由正整数组成的整数数组nums,返回其中可被3整除的所有偶数的平均值。注意:n个元素的平均值等于n个......