剑指OFFER树的子结构
Posted moongazer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指OFFER树的子结构相关的知识,希望对你有一定的参考价值。
【问题描述】
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
【AC 代码】
Reference: https://blog.nowcoder.net/n/78f8183e6b8b40208483978b80cd8f74?f=comment
1 /** 2 public class TreeNode 3 int val = 0; 4 TreeNode left = null; 5 TreeNode right = null; 6 7 public TreeNode(int val) 8 this.val = val; 9 10 11 12 13 */ 14 public class Solution 15 public boolean HasSubtree(TreeNode root1,TreeNode root2) 16 if (root1 == null || root2 == null) return false; 17 return DoesTree1HasTree2(root1, root2) || HasSubtree(root1.left, root2) || HasSubtree(root1.right, root2); 18 19 private boolean DoesTree1HasTree2(TreeNode tree1, TreeNode tree2) 20 if (tree2 == null) return true; 21 if (tree1 == null) return false; 22 if (tree1.val != tree2.val) return false; 23 return DoesTree1HasTree2(tree1.left, tree2.left) && DoesTree1HasTree2(tree1.right, tree2.right); 24 25
以上是关于剑指OFFER树的子结构的主要内容,如果未能解决你的问题,请参考以下文章