当前位置:网站首页>Leetcode exercise - Sword finger offer 26 Substructure of tree
Leetcode exercise - Sword finger offer 26 Substructure of tree
2022-07-06 22:26:00 【SK_ Jaco】
1. Title Description
The finger of the sword Offer 26. The substructure of a tree
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
2. Problem solving ideas and codes
2.1 Their thinking
Question request judgment B Is it A The subtree of , So first we need to be in A Find B Root node of , Then start from the root node to judge whether the nodes are the same . So the topic becomes two steps : stay A Search for B Root node of the same node 、 Take this node as the root node and B Compare and judge whether they are the same in turn . Take the topic as an example 2 To illustrate .
First, in the A Find and B Points with the same root node value 
stay A After finding the node in , Take this node as the root node and B Compare from the root node , until B Traverse complete

It should be noted that , The values of nodes in the title may be the same , So you need to A Find each node , And make a comparison every time you find one .
2.2 Code
class Solution {
boolean ans = false;
public boolean isSubStructure(TreeNode A, TreeNode B) {
if (B == null) {
return false;
}
find(A, B);
return ans;
}
// Compare whether the two trees are the same
public boolean compare(TreeNode root, TreeNode compareNode) {
if (root == null) {
return compareNode == null;
}
if (compareNode == null) {
return true;
}
if (root.val != compareNode.val) {
return false;
}
// Compare the leftmost subtree of the current node
boolean p1 = compare(root.left, compareNode.left);
// Compare the right subtree of the current node
boolean p2 = compare(root.right, compareNode.right);
return p1 & p2;
}
public void find(TreeNode root, TreeNode compareNode) {
if (root == null) {
return;
}
if (root.val == compareNode.val) {
// When the value of the current node is the same as that of the tree head node for comparison , Compare
boolean compare = compare(root, compareNode);
ans |= compare;
}
// Find the left subtree
find(root.left, compareNode);
// Find the right subtree
find(root.right, compareNode);
}
}
2.3 test result
Pass the test

3. summary
- According to the requirements of the topic, we need to search and compare the tree
- Every time you find a node with the same value, you need to make a comparison
边栏推荐
- Daily question 1: force deduction: 225: realize stack with queue
- Management background --4, delete classification
- Shortcut keys in the terminal
- 2020 Bioinformatics | GraphDTA: predicting drug target binding affinity with graph neural networks
- HDR image reconstruction from a single exposure using deep CNN reading notes
- [sciter bug] multi line hiding
- 在IPv6中 链路本地地址的优势
- C # réalise la liaison des données du rapport Crystal et l'impression du Code à barres 4
- labelimg的安装与使用
- 2500个常用中文字符 + 130常用中英文字符
猜你喜欢

Aardio - 不声明直接传float数值的方法

Aardio - 通过变量名将变量值整合到一串文本中
![[leetcode daily clock in] 1020 Number of enclaves](/img/2d/3d12f20c8c73fb28044c01be633c99.jpg)
[leetcode daily clock in] 1020 Number of enclaves

二分图判定

0 basic learning C language - digital tube

ZABBIX proxy server and ZABBIX SNMP monitoring

Management background --1 Create classification

NPDP认证|产品经理如何跨职能/跨团队沟通?

Unity3d minigame-unity-webgl-transform插件转换微信小游戏报错To use dlopen, you need to use Emscripten‘s...问题

BarcodeX(ActiveX打印控件) v5.3.0.80 免费版使用
随机推荐
十二、启动流程
Lora sync word settings
Seata聚合 AT、TCC、SAGA 、 XA事务模式打造一站式的分布式事务解决方案
return 关键字
手写ABA遇到的坑
基於 QEMUv8 搭建 OP-TEE 開發環境
枚举与#define 宏的区别
【sdx62】WCN685X将bdwlan.bin和bdwlan.txt相互转化操作方法
Build op-tee development environment based on qemuv8
2500 common Chinese characters + 130 common Chinese and English characters
二分图判定
[Digital IC hand tearing code] Verilog burr free clock switching circuit | topic | principle | design | simulation
0 basic learning C language - digital tube
Heavyweight news | softing fg-200 has obtained China 3C explosion-proof certification to provide safety assurance for customers' on-site testing
Force buckle 575 Divide candy
QT | UDP broadcast communication, simple use case
Data processing skills (7): MATLAB reads the data in the text file TXT with mixed digital strings
LeetCode刷题(十一)——顺序刷题51至55
Hardware development notes (10): basic process of hardware development, making a USB to RS232 module (9): create ch340g/max232 package library sop-16 and associate principle primitive devices
zabbix 代理服务器 与 zabbix-snmp 监控