本文主要是介绍LeetCode 572. 另一个树的子树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解题思路
深度优先搜索。
相关代码
/*** Definition for a binary tree node.* public 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 {boolean flag=false;public boolean isSubtree(TreeNode root, TreeNode subRoot) {dfs(root,subRoot);return flag;}public void dfs(TreeNode root1,TreeNode root2){if(root1==null) return;if(ischeck(root1,root2)==true){flag = true;return;}dfs(root1.left,root2); dfs(root1.right,root2);}//判断两个二叉树是否相等public boolean ischeck(TreeNode root1,TreeNode root2){if(root1==null&&root2==null) return true;if(root1==null&&root2!=null) return false;if(root1!=null&&root2==null) return false;if(root1.val!=root2.val) return false;return ischeck(root1.left,root2.left)&&ischeck(root1.right,root2.right);}
}
这篇关于LeetCode 572. 另一个树的子树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!