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

力扣226. 翻转二叉树(DFS的两种思路)

Problem: 226. 翻转二叉树

文章目录

  • 题目描述
  • 思路
  • 复杂度
  • Code

题目描述

在这里插入图片描述在这里插入图片描述

思路

涉及二叉树的递归解法时往往需要考虑两种思路:

1.在递归遍历时执行题目需要的具体要求;
2.将一个大问题分解为多个小子问题

具体到本体:
思路1:遍历

先序遍历+基本的交换操作

思路2:问题分解

将翻转一棵二叉树分解为翻转根节点的左右子树,再分解为翻转左右子树的左右子树…一直分解到叶子节点时,再在回退的过程中执行交换操作,即需要利用到二叉树的后序遍历

复杂度

思路1:
时间复杂度:

O ( n ) O(n) O(n);其中 n n n为二叉树节点的个数

空间复杂度:

O ( n ) O(n) O(n)

思路2:
时间复杂度:

O ( n ) O(n) O(n)

空间复杂度:

O ( n ) O(n) O(n)

Code

思路1:

class Solution {/*** Invert Binary Tree(Recursive traversal)** @param root The root node of binary tree* @return TreeNode*/public TreeNode invertTree(TreeNode root) {if (root == null) {return null;}traverse(root);return root;}/*** Recursive implementation function** @param root The root node of binary tree*/private void traverse(TreeNode root) {if (root == null) {return;}TreeNode temp = root.left;root.left = root.right;root.right = temp;traverse(root.left);traverse(root.right);}
}

思路2:

class Solution {/*** Invert Binary Tree(Break down the problem)** @param root The root node of binary tree* @return TreeNode*/public TreeNode invertTree(TreeNode root) {if (root == null) {return null;}TreeNode leftNode = invertTree(root.left);TreeNode rightNode = invertTree(root.right);root.left = rightNode;root.right = leftNode;return root;}
}
http://www.lryc.cn/news/351484.html

相关文章:

  • 状态机-非重叠的序列检测
  • Word怎么画图?这5个方法收藏好!
  • qt designer 依赖库 QMessageBox
  • 反序列化漏洞(JBoss、apache log4、apache Shiro、JWT)Weblogic未授权访问、代码执行、任意上传
  • PHP身份证真伪验证、身份证二、三要素核验、身份证ocr接口
  • 【Qt 学习笔记】Qt常用控件 | 布局管理器 | 表单布局Form Layout
  • 数智赋能内涝治理,四信城市排水防涝解决方案保障城市安全运行
  • docker实战之搭建MYSQL8.0主从同步
  • LTD275次升级 | 网页编辑器新增AI翻译 • 文章|产品等内容可导出 • 新增交互数据 • 购物清单可导出• 官微中心app出新版
  • 代码随想录算法训练营第36期DAY36
  • zookeeper安装教程
  • windows2008修改远程桌面端口,如何果断修改远程桌面端口,确保系统安全无忧!
  • 【计算机网络原理】对传输层TCP协议的重点知识的总结
  • mysql实战——半同步复制搭建
  • Leetcode 3152. Special Array II
  • 人工智能与区块链技术:开启未来科技的双引擎
  • Python筑基之旅-MySQL数据库(二)
  • web前端面试题
  • 创建型模式之单例
  • 在 Next.js 应用中创建ContactForm表单提交
  • HTML5 3D图像应用
  • SQL——DML对表中数据的操作
  • 深度学习之基于Matlab卷积神经网络(CNN)手写数字识别
  • 工业4.0 企业级云MES全套源码,支持app、小程序、H5、台后管理端
  • Science| 单体耦合纤维实现无芯片纺织电子(纤维器件/智能织物/柔性可穿戴电子)
  • 前端面试项目细节重难点(已工作|做分享)
  • ASTGCN 论文学习下
  • 【面经】单片机
  • 基于manifest文件批量将coding的仓库导入gitlab中
  • 【数据结构】——顺序表与链表