import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * } * } */ /** * NC315 相同的二叉树 * @author d3y1 */ public class Solution { private boolean result = true; /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 程序入口 * * @param root1 TreeNode类 * @param root2 TreeNode类 * @return bool布尔型 */ public boolean isSameTree (TreeNode root1, TreeNode root2) { if(root1==null && root2==null){ return true; }else if(root1==null && root2!=null){ return false; }else if(root1!=null && root2==null){ return false; }else{ if(root1.val != root2.val){ return false; } } return isSameTree(root1.left, root2.left) && isSameTree(root1.right, root2.right); } public boolean isSameTree1 (TreeNode root1, TreeNode root2) { preorder(root1, root2); return result; } /** * 递归: 前序遍历 * @param root1 * @param root2 */ private void preorder(TreeNode root1, TreeNode root2){ if(root1==null && root2==null){ return; }else if(root1==null && root2!=null){ result = false; return; }else if(root1!=null && root2==null){ result = false; return; }else{ if(root1.val != root2.val){ result = false; return; } } preorder(root1.left, root2.left); preorder(root1.right, root2.right); } }