解题报告
判断根结点是否等于子结点之和
题目链接:2236. 判断根结点是否等于子结点之和
解题思路
没有任何技巧
解题代码
class Solution {
public:
bool checkTree(TreeNode* root) {
return root -> val == root -> left -> val + root -> right -> val;
}
};
检查子树
题目链接:面试题 04.10. 检查子树
解题思路
递归遍历两个树
(1)若两个根节点都为空,返回true。
(2)若一个为空,一个不为空,返回false。
(3)两个根节点值相等,递归判断两个子节点。
(4)两个根节点值不相等,判断t1子树是否与t2相等。
解题代码
class Solution {
public:
bool checkSubTree(TreeNode* t1, TreeNode* t2) {
if(t1 == nullptr && t2 == nullptr){
return true;
}
if(t1 == nullptr || t2 == nullptr){
return false;
}
if(t1 -> val == t2 -> val){
if(checkSubTree(t1 -> left, t2 -> left) &&
checkSubTree(t1 -> right, t2 -> right)){
return true;
}
}
return checkSubTree(t1 -> left, t2) || checkSubTree(t1 -> right, t2);
}
};
后继者
题目链接:面试题 04.06. 后继者
解题思路
解题代码
删点成林
题目链接:1110. 删点成林
解题思路
解题代码