Check Same Binary Tree
Question: Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value. Here we know how to Check Same Binary Tree.
Solution
Approach 1 :
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(p==null && q==null){return true;} if(p==null && q!=null){return false;} if(p!=null && q==null){return false;} if(p.val==q.val){ if(isSameTree(p.left,q.left) && isSameTree(p.right,q.right)){ return true; } else{ return false; } } else{ return false; } } }
Optimized Code:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(p == null && q == null) return true; if(p == null || q == null) return false; return (p.val == q.val) && isSameTree(p.left, q.left) && isSameTree(p.right, q.right); } }