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

翻转二叉树-力扣

翻转二叉树,通过前序遍历的顺序,从根节点开始,将节点的左右子节点一次进行交换即可。

/*** 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:TreeNode* invertTree(TreeNode* root) {if(root == nullptr){return root;}TreeNode* temp = root->left;root->left = root->right;root->right = temp;invertTree(root->left);invertTree(root->right);return root;}
};

使用迭代的统一写法,前序遍历代码如下:

class Solution {
public:TreeNode* invertTree(TreeNode* root) {stack<TreeNode*> st;if(root != nullptr){st.push(root);}while(!st.empty()){TreeNode* cur = st.top();st.pop();if(cur != nullptr){//st.pop();if(cur->right != nullptr) {st.push(cur->right);}if(cur->left != nullptr) {st.push(cur->left);}st.push(cur);st.push(nullptr);} else {//st.pop();TreeNode * cur = st.top();st.pop();swap(cur->left, cur->right);}}return root;}
};
http://www.lryc.cn/news/368778.html

相关文章:

  • 办公风云颜值背后的职场正能量
  • ffmpeg将一个视频中的音频合并到另一个视频
  • Web前端管理系统项目:深度解析与实现之道
  • C语言最终讲:预处理详解
  • Mysql的底层实现逻辑
  • Node安装配置
  • Django里的ModelForm组件
  • 深入理解C语言:main函数的奥秘
  • selenium自动化测试入门 —— Alert/Confirm/Prompt 弹出窗口处理!
  • 探索JavaScript 18:新特性全解析
  • Python第二语言(七、Python模块)
  • 介绍单例模式
  • 【C++修行之道】类和对象(五)日期类的实现、const成员、取地址及const和取地址操作符重载
  • 来腾讯第4天,我已经焦虑昏了啊!
  • MacOS升级ruby版本
  • 【MySQL数据库基础】
  • QT系列教程(9) 主窗口学习
  • 【C++进阶】深入STL之 栈与队列:数据结构探索之旅
  • SpringBoot发邮件服务如何配置?怎么使用?
  • AutoCAD Mechanical机械版专业的计算机辅助设计软件安装包下载安装!
  • json.load报错AttributeError: ‘str‘ object has no attribute ‘load‘
  • 单词记忆(第二周)
  • RAG:如何从0到1搭建一个RAG应用
  • leetcode:67二进制求和
  • 大模型日报2024-06-10
  • 【博士每天一篇文献-综述】Modularity in Deep Learning A Survey
  • Sentinel不使用控制台基于注解限流,热点参数限流
  • HTML做成一个端午节炫酷页面
  • 解决Ubuntu系统/usr/lib/xorg/Xorg占用显卡内存问题原创
  • 【Activiti7系列】基于Spring Security的Activiti7工作流管理系统简介及实现(附源码)(下篇)