Skip to content

Latest commit

 

History

History
48 lines (40 loc) · 1.03 KB

101. Symmetric Tree.md

File metadata and controls

48 lines (40 loc) · 1.03 KB

Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

For example, this binary tree [1,2,2,3,4,4,3] is symmetric:

    1
   / \
  2   2
 / \ / \
3  4 4  3

But the following [1,2,2,null,3,null,3] is not:

    1
   / \
  2   2
   \   \
   3    3

Follow up

Solve it both recursively and iteratively.


Solution

  • mine
    • Java

      Recursive Runtime: 0 ms, faster than 100.00%, Memory Usage: 37.3 MB, less than 74.15% of Java online submissions

      //O(N)time O(1)space
      public boolean isSymmetric(TreeNode root) {
          return check(root,root);
      }
      
      public boolean check(TreeNode left,TreeNode right){
          if(left == null && right == null){
              return true;
          }
          if(left == null || right == null){
              return false;
          }
          return left.val == right.val && check(left.left,right.right) && check(left.right,right.left); 
      }