首页 > 编程语言 >10.5算法

10.5算法

时间:2023-10-05 11:14:03浏览次数:36  
标签:right TreeNode val nullptr 算法 10.5 root left

对称二叉树
给你一个二叉树的根节点 root , 检查它是否轴对称。

 

示例 1:


输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:


输入:root = [1,2,2,null,3,null,3]
输出:false
 

提示:

树中节点数目在范围 [1, 1000] 内
-100 <= Node.val <= 100

 

/**  * Definition for a binary tree node.  * struct TreeNode {  *     int val;  *     TreeNode *left;  *     TreeNode *right;  *     TreeNode() : val(0), left(nullptr), right(nullptr) {}  *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}  *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}  * };  */ class Solution { public:     bool isSymmetric(TreeNode* root) {     std::queue<TreeNode*> q;     if(root == nullptr){         return true;     }     q.push(root->left);     q.push(root->right);     while(!q.empty()){         auto left = q.front();         q.pop();         auto right = q.front();         q.pop();         if(left == nullptr && right == nullptr){             continue;         }         if(left == nullptr || right == nullptr || left->val != right->val){             return false;         }         q.push(left->left);         q.push(right->right);         q.push(right->left);         q.push(left->right);              }     return true;     } };   关键:不要去想怎么去取队列的头尾问题,转化为将头尾放在一起就变得简单容易了,对称的话需要左边取一个,右边取一个

标签:right,TreeNode,val,nullptr,算法,10.5,root,left
From: https://www.cnblogs.com/minipython-wldx/p/17743155.html

相关文章

  • PowerBuilder编程新思维10.5:外传2(PowerPlume下一代开发解决方案)
    万里归来年愈少 PowerBuilder编程新思维10.5:外传2(PowerPlume下一代解决方案) 前言今天我们就来盘点一下,PB下一代开发的所有技术可能性。所谓下一代开发技术,就是指脱离或半脱离PBVM的应用开发技术,主要指后端。 后端技术汇总  前端PB+JSON前端PB+BLOBWEB后端P......
  • 【知识点】如何找到正确的算法?
    算法思路一、多组查询·考虑如何利用已知信息避免重复查询。·考虑各种预处理,例如前缀和。二、规模减小·考虑树、链等三、以小见大·考虑特殊情况,并考虑以此为基础继续转移四、模拟优化·考虑高维复杂度算法,并考虑尽可能优化五、题面信息·数据规模\[n≥10......
  • 【知识点】如何找到正确的算法?
    #算法思路**一、多组查询**·考虑如何利用已知信息避免重复查询。·考虑各种预处理,例如前缀和。------------**二、规模减小**·考虑树、链等------------**三、以小见大**·考虑特殊情况,并考虑以此为基础继续转移------------**四、模拟优化**·考虑高维复杂度......
  • 【基础算法】排序算法 —— 插入排序
    一、算法原理插入排序将数组分为已排序区间和未排序区间,初始已排序区间只有数组第1个元素,未排序区间从下标1开始到数组末尾。每次取未排序区间的第1个元素,将它插入已排序区间的合适位置,并保证已排序区间一直有序。重复这个过程,直到未排序区间为空,算法结束。给有序数组(已排序区......
  • 【基础算法】排序算法 —— 选择排序
    一、算法原理选择排序将数组分为已排序区间和未排序区间,每次选择未排序区间的最小元素,将它放到已排序区间末尾。一次选择会让一个元素移动到它应该在的位置,重复n次,就完成了n个数据的排序。 示例:使用选择排序对数组arr=[4,5,6,3,2,1]从小到大排序。第1次选择:第2次选择:......
  • 【基础算法】排序算法 —— 冒泡排序
    一、算法原理冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,如果不满足大小关系要求,就进行交换。一次冒泡会让至少一个元素移动到它应该在的位置,重复n次,就完成了n个数据的排序。 示例:使用冒泡排序对数组arr=[4,5,6,3,2,1]从小到大排序。第1次......
  • 稳定婚姻问题(Gale-Shapley算法)
    前言今天duck、香饽饽老板和彬彬一起出了个模拟赛,赛时T2想到了跟正解很接近的做法,但最后还是打挂了then喜提0pts,后面duck讲题的时候才知道是稳定婚姻板题。看完证明之后觉得很妙,遂开坑。只是简单整理,图一乐子吧算是。说是稳定婚姻问题,但其实我觉得更合适的叫法是属性稳定分......
  • 【基础算法】排序算法
    一、排序算法简介排序是对批量数据按照一定的顺序进行排列的操作。1.1学习排序算法的要点算法原理、代码实现、评价算法优劣。1.2评价排序算法的优劣排序算法的优劣可以从以下3个方面进行评价:时间性能:最好、最坏、平均时间复杂度;内存占用:是否原地排序,原地排序算法,......
  • C/C++学习 -- 分组加密算法(DES算法)
    数据加密标准(DataEncryptionStandard,DES)是一种对称密钥加密算法,是信息安全领域的经典之作。本文将深入探讨DES算法的概述、特点、原理,以及提供C语言和C++语言实现DES算法的代码案例。一、DES算法概述DES算法是一种对称密钥加密算法,由IBM于1977年开发并于1977年被美国国家标准局(NI......
  • 视频融合/监控汇聚平台EasyCVR人形检测算法应用汇总
    安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智能分析的......