flowingfog

偶尔刷题

  博客园  :: 首页  :: 新随笔  :: 联系 ::  :: 管理

分析

难度 易

来源

https://leetcode.com/problems/symmetric-tree/

题目

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

Note:
Bonus points if you could solve it both recursively and iteratively.

解答

Runtime: 8 ms, faster than 98.44% of Java online submissions for Symmetric Tree.

 1 package LeetCode;
 2 
 3 public class L101_SymmetricTree {
 4     public boolean isAlike(TreeNode p, TreeNode q) {//把一棵树的对称转化为两棵树的相似
 5         if(p==null&&q==null)
 6             return true;
 7         if((p==null&&q!=null)||(p!=null&&q==null)||(p.val!=q.val))
 8             return false;
 9         return isAlike(p.left,q.right)&&isAlike(p.right,q.left);
10     }
11     public boolean isSymmetric(TreeNode root) {
12         if(root==null)
13             return true;
14         return isAlike(root.left,root.right);
15     }
16 }

 

 

posted on 2018-10-30 19:33  flowingfog  阅读(94)  评论(0编辑  收藏  举报