zoukankan      html  css  js  c++  java
  • Symmetric Tree

    1. Question

    判断一个二叉树是否是对称的。

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
    
    For example, this binary tree is symmetric:
    
        1
       / 
      2   2
     /  / 
    3  4 4  3
    But the following is not:
        1
       / 
      2   2
          
       3    3
    Note:
    Bonus points if you could solve it both recursively and iteratively.
    
    OJ's Binary Tree Serialization:

    The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.

    
    

    Here's an example:

    
    
       1
      / 
     2   3
        /
       4
        
         5
    
    The above binary tree is serialized as "{1,2,3,#,#,4,#,#,5}".

    2. Solution

    考虑特殊情况:

    • 树为空

    采用分治法:

    • 左子树顶点和右子树顶点相同
    • 左子树顶点的左子树和右子树顶点的右子树对称
    • 左子树顶点的右子树和右子树顶点的左子树对称
    /**
     * Definition for binary tree
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        //if two trees are symmetric, return true
        public boolean isSymmetric( TreeNode left, TreeNode right ){
            if( left==null && right==null ) return true;
            if( (left==null && right!=null) || (right==null && left!=null) ) return false;
            return (left.val == right.val) && (isSymmetric( left.left, right.right )) && (isSymmetric( left.right, right.left ));
        }
        public boolean isSymmetric(TreeNode root) {
            if( root == null ) return true;
            return isSymmetric( root.left, root.right );
        }
    }
    View Code
  • 相关阅读:
    10. Regular Expression Matching
    9. Palindrome Number
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
    2. Add Two Numbers
    链式表的按序号查找
    可持久化线段树——区间更新hdu4348
    主席树——树链上第k大spoj COT
  • 原文地址:https://www.cnblogs.com/hf-cherish/p/4598768.html
Copyright © 2011-2022 走看看