当前位置:网站首页>Sword finger offer 26 Substructure of tree
Sword finger offer 26 Substructure of tree
2022-07-07 00:11:00 【xzystart】
Input two binary trees A and B, Judge B Is it right? A Substructure of .( A convention empty tree is not a substructure of any tree )
B yes A Substructure of , namely A There are emergence and B Same structure and node values .
for example :
Given tree A:
3
/ \
4 5
/ \
1 2
Given tree B:
4
/
1
return true, because B And A A subtree of has the same structure and node values .
Example 1:
Input :A = [1,2,3], B = [3,1]
Output :false
Example 2:
Input :A = [3,4,5,1,2], B = [4,1]
Output :true
class Solution {
public boolean isSubStructure(TreeNode A, TreeNode B) {
// Judge by ab A tree for roots b Whether it is a Substructure of
// The function of this function is to judge the two trees of the input parameter ,b Whether it is a Substructure of
// The principle is to see a Whether or not b Exactly the same , If the same returns true, If not, judge a Whether the left and right subtrees of are related to b Exactly the same ,
// The principle is to find A A child node of the tree ( Contains the root node ) Is the subtree of the root and B The trees are exactly equal , If this condition is met , It can be said that it meets the meaning of the topic
// If traversal to empty has not found , It proves that the meaning of the question is not satisfied
if (B == null || A == null) {
// Special value judgment ( Recursion to empty has not been found through the following if)
return false;
}
if (A.val == B.val && (helper(A.left, B.left) && helper(A.right, B.right))) {
// Judge ab Is it completely equal
return true; // There is only one recursive function true return , So the top function is true( Because recursion uses the or operator )
}
// Recursively call ( If the above if If you pass, you will not enter here. Enter here to explain ab A tree with roots does not meet the condition )
// If the above if Pass to prove B Trees and A The molecular structure of a part of the tree is completely equal
return isSubStructure(A.left, B) || isSubStructure(A.right, B);
// Use the or operator , As long as there is one satisfaction, it will be satisfied as a whole
}
private boolean helper(TreeNode root1, TreeNode root2) {
// Judge by ab Whether the trees with roots are completely equal
// Be careful , The function of this function is to judge whether the two trees of the input parameter are completely equal
if (root2 == null) {
return true;
}
if (root1 == null) {
return false;
}
if (root1.val == root2.val) {
return helper(root1.left, root2.left) && helper(root1.right, root2.right);
} else {
return false;
}
}
}
边栏推荐
- 三句话简要介绍子网掩码
- Oracle中使用包FY_Recover_Data.pck来恢复truncate误操作的表
- Wind chime card issuing network source code latest version - commercially available
- 谷歌百度雅虎都是中国公司开发的通用搜索引擎_百度搜索引擎url
- 互动滑轨屏演示能为企业展厅带来什么
- Gradle knowledge generalization
- 《LaTex》LaTex数学公式简介「建议收藏」
- 陀螺仪的工作原理
- MATLIB reads data from excel table and draws function image
- openresty ngx_ Lua subrequest
猜你喜欢
随机推荐
How can computers ensure data security in the quantum era? The United States announced four alternative encryption algorithms
Use type aliases in typescript
How to find out if the U disk file of the computer reinstallation system is hidden
Newsletter L Huobi ventures is in-depth contact with genesis public chain
STM32 enters and wakes up the stop mode through the serial port
[automated testing framework] what you need to know about unittest
okcc呼叫中心的订单管理时怎么样的
Why should a complete knapsack be traversed in sequence? Briefly explain
GEO数据挖掘(三)使用DAVID数据库进行GO、KEGG富集分析
DAY ONE
app通用功能测试用例
为什么完全背包要用顺序遍历?简要解释一下
DAY SIX
Three sentences to briefly introduce subnet mask
[boutique] Pinia Persistence Based on the plug-in Pinia plugin persist
Local deployment Zeppelin 0.10.1
什么是响应式对象?响应式对象的创建过程?
"Latex" Introduction to latex mathematical formula "suggestions collection"
微信小程序uploadfile服务器,微信小程序之wx.uploadFile[通俗易懂]
Common modification commands of Oracle for tables