LeetCode-572. 另一棵树的子树

柔情只为你懂 2024-03-27 15:55 202阅读 0赞

题目来源
572. 另一棵树的子树

解题思路

看到题目描述,首先判断一个树是否是另一棵树的子树,很明显想到可以用递归,但是两棵树完全相同也可以看做一棵树是另一棵树的子树。 所以自然而然想到用一个判断两棵树是否相同的递归函数。

  1. class Solution {
  2. public boolean isSubtree(TreeNode root, TreeNode subRoot) {
  3. if (subRoot == null) return true; // subRoot 为 null 一定都是 true
  4. if (root == null) return false; // 这里 subRoot 一定不为 null, 只要 root 为 null,肯定是false
  5. return isSameTree(root,subRoot) || isSubtree(root.left,subRoot) || isSubtree(root.right,subRoot);
  6. }
  7. public static boolean isSameTree(TreeNode root, TreeNode subRoot){
  8. if(root == null && subRoot == null){
  9. return true;
  10. }
  11. if(root == null || subRoot == null){
  12. return false;
  13. }
  14. if(root.val != subRoot.val){
  15. return false;
  16. }
  17. return isSameTree(root.left,subRoot.left) && isSameTree(root.right,subRoot.right);
  18. }
  19. }

在这里插入图片描述
这道题解决了,可以去做下下面的两道题,只需要修改一下代码就可以了
LeetCode-101. 对称二叉树
LeetCode-100. 相同的树

发表评论

表情:
评论列表 (有 0 条评论,202人围观)

还没有评论,来说两句吧...

相关阅读

    相关 572. 一个

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

    相关 LeetCode572. 一个

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