102.二叉树的层序遍历、226.反转二叉树、101.对称二叉树

102.二叉树的层序遍历

二叉树的层次遍历,我们可以定义一个队列,
当访问到某一个节点时,我们将它存在的左右节点放入队列中,便可达到按顺序访问某一层的目的。
起始时,如果根节点存在,我们令循环的次数为1(第一层只有一个节点),如果它的左节点存在,将其放入队列中,令下一次循环的次数+1;右节点存在时,将其放入队列中,令下一次循环的次数+1;以此类推。
这一层结束时,我们便可得到下一层的节点数,并循环这么多次数。

代码

class Solution {public:vector<vector<int>> levelOrder(TreeNode* root) {queue<TreeNode*> que;vector<vector<int>> ans;if(root==nullptr)    return ans;int k = 1;que.push(root);TreeNode * p;while(!que.empty()){int next = 0;vector<int> now;while(k--){p = que.front();que.pop();now.push_back(p->val);if(p->left!=nullptr) {que.push(p->left);next++;}if(p->right!=nullptr){que.push(p->right);next++;} }k = next;ans.push_back(now);}return ans;}
};

226.翻转二叉树

我们可以利用递归的方式,对二叉树进行翻转
如果节点为空,我们则直接返回
如果节点不为空。我们交换他们的左右孩子
然后分别访问该节点的左右孩子。

代码

class Solution {public:TreeNode* invertTree(TreeNode* root) {if(root==nullptr) return root;swap(root->left,root->right);invertTree(root->left);invertTree(root->right);return root; }
};

101.对称二叉树

对于对称二叉树,我们可以定义两个指针,分别指向左右对称的位置
如果对称位置的情况不相同,我们则返回false
如果对称位置都是空指针,我们返回true
如果对称位置的值相同,我们比较它们的孩子是否相同,当他们的左右孩子都相同,我们返回true

代码

class Solution {public:bool compare(TreeNode* left,TreeNode* right){if(left==nullptr&&right!=nullptr) return false;else if(left!=nullptr&&right ==nullptr) return false;else if(left==nullptr&&right==nullptr) return true;else if(left->val!=right->val) return false;bool inside = compare(left->right,right->left);bool outside = compare(left->left,right->right);bool result = inside&outside;return result;}bool isSymmetric(TreeNode* root) {if(root==nullptr) return true;return(compare(root->left,root->right));}
};

代码随想录算法训练营第15天,102.二叉树的层序遍历、226.翻转二叉树、101.对称二叉树相关推荐

  1. 代码随想录算法训练营第十三天|102.二叉树的层序遍历、226.翻转二叉树、101.对称二叉树

    链接:代码随想录 文章目录 102.二叉树的层序遍历 226.翻转二叉树 101.对称二叉树 解题方法 题目思路 示例代码 总结 解题思路 1.102.二叉树的层次遍历 解题思路 递归法,创立二维数组 ...

  2. 代码随想录【day 14 二叉树】| 层序遍历 226.翻转二叉树 101.对称二叉树

    代码随想录[day 14 二叉树]| 层序遍历 226.翻转二叉树 101.对称二叉树 层序遍历 卡哥文解 视频讲解 题目链接:102.二叉树的层序遍历 解题思路 代码实现 题目链接:107.二叉树的 ...

  3. 代码随想录算法训练营第十五天 | 102. 二叉树的层序遍历 | 226.翻转二叉树 | 101. 对称二叉树

    递归三部曲 确定递归函数的参数和返回值 确定终止条件 确定单层递归的逻辑 102. 二叉树的层序遍历 题解及想法 解法一 :递归法 class Solution {public List<Lis ...

  4. 代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和

    代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和 454.四数相加II 建议:本题是 使用map 巧妙解决的问题,好好体 ...

  5. 代码随想录算法训练营第六天|454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和。

    代码随想录算法训练营第六天|454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和. 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和 454.四数相加I ...

  6. 代码随想录算法训练营第⑦天 | 454.四数相加II ,383. 赎金信,15. 三数之和,18. 四数之和 9.30

    代码随想录算法训练营第⑦天 | 454.四数相加II ,383. 赎金信,15. 三数之和,18. 四数之和 9.30 454.四数相加II 可以先用2次for循环遍历前两个数组a,b 并存储到map ...

  7. 代码随想录算法训练营day6| 454.四数相加II 383.赎金信 15.三数之和 18.四数之和

    代码随想录算法训练营day6| 454.四数相加II 383.赎金信 15.三数之和 18.四数之和 LeetCode 454 四数相加II 题目链接: 454.四数相加II class Soluti ...

  8. 代码随想录算法训练营Day12 栈与队列

    #代码随想录算法训练营 代码随想录算法训练营Day12 栈与队列| 239. 滑动窗口最大值 347.前 K 个高频元素 总结 239. 滑动窗口最大值 给定一个数组 nums,有一个大小为 k 的滑 ...

  9. 代码随想录算法训练营第十五天 | 层序遍历 10,226.翻转二叉树,101.对称二叉树 2

    代码随想录算法训练营第十五天 | 层序遍历 10,226.翻转二叉树,101.对称二叉树 2 1.1 层序遍历 10 1.1.1 102.二叉树的层序遍历 思路: 通过队列实现 class Solut ...

最新文章

  1. mac版python连接mysql_Mac下Python连接MySQL · BlBana’s BlackHouse
  2. 如何使用VS2015开发Qt5程序
  3. 安卓APP_ 控件(4)—— ImageView
  4. Spotify如何使用Cassandra实现个性化推荐
  5. mcq 队列_人工智能搜索问题能力问题解答(MCQ)
  6. Atom Latex Settings
  7. python虚函数_virtual(虚函数) vtbl(虚函数表)与vptr(虚函数表指针)
  8. three.js 键盘w、s、a、d控制几何体移动
  9. one hot encoding
  10. 怎么恢复初始状态_妊娠纹怎么消 这三种美食帮你去除妊娠纹
  11. delphi打包python_python for delphi 组件安装和调试的那些坑儿 !
  12. java.lang.InstantiationException: class has no zero argument constructor
  13. Android 手机做麦克风扩音器demo
  14. ISA防火墙策略配置
  15. 银河麒麟(kylin)V10桌面版
  16. 完全使用gnu linux工作
  17. 如何提高接收机的灵敏度
  18. 使用uniapp绘制一个折线图(uCharts)
  19. TensorFlow-SSD测试代码梳理
  20. python实现二分查找_数据结构和算法:Python实现二分查找(Binary_search)

热门文章

  1. 从一个真实案例说起:我所亲历的传统行业数字化转型
  2. layim之添加好友分组
  3. 视频编码格式转换工具:Compressor for mac中文版(完美兼容M1)
  4. 《人生重开模拟器》3天2亿流量却源于群内自嗨,网友:我提前看遍人生的无常...
  5. Pytorch学习中的Dataset与DataLoad的一些自己的理解
  6. 榆林市科技馆项目变电所运维的研究与应用
  7. 十分钟内让你看懂中国经济形势,房价为何上涨
  8. vt版本不见了_BIOS问题 我的版本BIOS 找不到 开启 intel vt-x功能
  9. FAT32转NTFS资料全部丢失的恢复方法
  10. php打开word文档_PHP读取word文档的方法分享