当前位置: 首页 > news >正文

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 a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    bool isSymmetric(TreeNode* root) {
        if( (root == NULL) || (root -> left == NULL) && (root -> right == NULL) )
            return true;
        else if((root -> left != NULL) && ( root -> right != NULL) && (root -> left -> val == root -> right -> val) )
        {
            return judgeSymNode(root -> left,root -> right);
        }
        else
            return false;
    }
   
    bool judgeSymNode(TreeNode * leftNode,TreeNode *rightNode)
    {
        if((leftNode == NULL) && (rightNode == NULL))
            return true;
        else if((leftNode == NULL) || (rightNode == NULL))
            return false;
        else if(leftNode -> val != rightNode -> val)
            return false;
        else
        {
            return judgeSymNode(leftNode -> left,rightNode -> right) && judgeSymNode(leftNode -> right,rightNode -> left);
        }
    }
   
};

转载于:https://www.cnblogs.com/CodingGirl121/p/5426186.html

相关文章:

  • spring测试junit事务管理及spring面向接口注入和实现类单独注入(无实现接口),实现类实现接口而实现类单独注入否则会报错。...
  • CodeForces 660C Hard Process
  • 流媒体选择Nginx是福还是祸?
  • 解读Secondary NameNode的功能
  • linux下Bash函数功能之编写脚本(十二)
  • PHP~foreach遍历名单数组~有必要多次观看练习
  • 玩聚的博客墙 V
  • 第九周周记
  • Linux系统下proc目录详解
  • 每天一个linux命令:du
  • 【Swift学习】Swift编程之旅---类和结构体(十三)
  • 源代码的下载和编译
  • SSH的整合
  • 项目重构之数据源配置与优化:log4j 配置数据库连接池Druid,并实现日志存储到数据库...
  • Java---常用基础面试知识点
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • ECS应用管理最佳实践
  • FineReport中如何实现自动滚屏效果
  • java2019面试题北京
  • Java小白进阶笔记(3)-初级面向对象
  • js算法-归并排序(merge_sort)
  • Quartz初级教程
  • Redis在Web项目中的应用与实践
  • Sass 快速入门教程
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • spring cloud gateway 源码解析(4)跨域问题处理
  • STAR法则
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 关于 Cirru Editor 存储格式
  • 关于字符编码你应该知道的事情
  • 深入浅出Node.js
  • 线上 python http server profile 实践
  • 用jQuery怎么做到前后端分离
  • 在electron中实现跨域请求,无需更改服务器端设置
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​iOS实时查看App运行日志
  • ​决定德拉瓦州地区版图的关键历史事件
  • (7)STL算法之交换赋值
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (力扣题库)跳跃游戏II(c++)
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .net core使用ef 6
  • .net refrector
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .NET委托:一个关于C#的睡前故事
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • .sys文件乱码_python vscode输出乱码
  • @FeignClient注解,fallback和fallbackFactory
  • [20170713] 无法访问SQL Server
  • [Android]Tool-Systrace