572. 另一棵树的子树

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/subtree-of-another-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
找子树只能从上向下找了,找到与子树根节点同值的,判断是否是相同数即结构相同,值相同。
public boolean isSubtree(TreeNode root, TreeNode subRoot) {
// 如果节点是null,返回false.
if(root == null) {
return false;
}
// 找到了值相同的。
if(root.val == subRoot.val) {
boolean ret = isSameTree(root,subRoot);
// 如果该节点不行,还需要在找。
if(ret) {
return true;
}
}
return isSubtree(root.left,subRoot) || isSubtree(root.right, subRoot);
}
public boolean isSameTree(TreeNode node1, TreeNode node2) {
if(node1 == null || node2 == null) {
return node1 == node2;
}
if(node1.val != node2.val) {
return false;
}
return isSameTree(node1.left,node2.left) && isSameTree(node1.right, node2.right);
}
浙公网安备 33010602011771号