zoukankan      html  css  js  c++  java
  • LeetCode_Symmetric Tree

    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.
    

     递归:

    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        bool check(TreeNode *A, TreeNode * B)
        {
            if(A == NULL && B == NULL) return true;
            if(A == NULL || B == NULL) return false;
            if(A->val != B->val) return false;
      
            return check(A->left, B->right) && check(A->right , B->left) ;
        }
        bool isSymmetric(TreeNode *root) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            return check(root, root) ;
        }
    };
    --------------------------------------------------------------------天道酬勤!
  • 相关阅读:
    一天进步一点点
    Flask
    Sqlalchemy 设置表编码及引擎
    threading.local
    xshell配置密码公钥登录
    linux 系统优化+定时任务
    linux命令
    xshell连接及优化
    linux前奏
    Vue Devtools--vue调式工具
  • 原文地址:https://www.cnblogs.com/graph/p/3039952.html
Copyright © 2011-2022 走看看