- 问题描述
判断一个树是否为另一个树的子树 - 解决思路
1> 先在树中找是否有该节点.
2> 然后以该节点为树, 判断以该节点为树的树和子树是否为相同的树.
判断两个树是否相同, 请点击
link. - 源代码
class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val = val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}
}
class Solution {public boolean isSameTree(TreeNode s, TreeNode t) {if (s == null && t == null) {return true;}if (s == null || t == null) {return false;}return s.val == t.val && isSameTree(s.left, t.left) && isSameTree(s.right, t.right);}public boolean isSubtree(TreeNode s, TreeNode t) {if (s == null) {return false;}return isSameTree(s, t) || isSubtree(s.left, t) || isSubtree(s.right, t);}
}