首页 > 代码库 > Leetcode: Same Tree
Leetcode: Same Tree
1 /** 2 * Definition for binary tree 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 public boolean isSameTree(TreeNode p, TreeNode q) { 12 if(p==null && q==null) return true; 13 if(p==null && q!=null) return false; 14 if(p!=null && q==null) return false; 15 if(p.val != q.val) return false; 16 return isSameTree(p.left, q.left)&&isSameTree(p.right, q.right); 17 } 18 }
别人的方法:
Solution1: 未研究
1 public class Solution { 2 public boolean isSameTree(TreeNode p, TreeNode q) { 3 // Start typing your Java solution below 4 // DO NOT write main() function 5 Queue<TreeNode> tree1 = new LinkedList<TreeNode>(); 6 Queue<TreeNode> tree2 = new LinkedList<TreeNode>(); 7 tree1.offer(p); 8 tree2.offer(q); 9 10 while(tree1.peek()!=null || tree2.peek()!=null){ 11 TreeNode t1 = tree1.poll(); 12 TreeNode t2 = tree2.poll(); 13 if(t1!=null && t2!=null && t1.val == t2.val && ((t1.left==null)==(t2.left==null)) &&((t1.right==null)==(t2.right==null))) { 14 if(t1.left!=null){ 15 tree1.offer(t1.left); 16 tree2.offer(t2.left); 17 } 18 if(t1.right!=null){ 19 tree1.offer(t1.right); 20 tree2.offer(t2.right); 21 } 22 }else 23 return false; 24 } 25 return true; 26 } 27 }
Solution2: 未研究
1 public class SameTree { 2 public boolean isSameTree(TreeNode p, TreeNode q) { 3 // Start typing your Java solution below 4 // DO NOT write main() function 5 if (p == null) { 6 return q == null; 7 } 8 if (q == null) { 9 return p == null; 10 } 11 if (p.val == q.val) { 12 return isSameTree(p.left, q.left) && isSameTree(p.right, q.right); 13 } else { 14 return false; 15 } 16 } 17 18 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。