首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    —— 226——翻转二叉树

    . - 力扣(LeetCode) 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。...,他们的子树跟着过去,相当于翻转下一层的一半,就像一个数组,我们对其进行二分翻转,第一次找到中间位置,把数组分为两个部分,然后翻转,之后把左右部分接着在里面分成两个部分,对应着左右子树,翻转,直至翻转到最后只有两个元素组成的部分...,翻转结束 2.代码实现分析 函数的输入是一个指向根节点的指针,输出是翻转后的二叉树的根节点指针。...接下来,递归地对左子树和右子树进行翻转。这样可以确保所有的子树都被翻转。 最后,返回翻转后的根节点。 该代码的时间复杂度是O(n),其中n是树中节点的个数。因为每个节点都被访问一次。...总结:该代码使用递归的方式翻转二叉树。递归的思想是先处理当前节点,然后递归地处理其左子树和右子树。通过不断交换左子树和右子树,最终完成翻转

    9410

    LeetCode,翻转二叉树

    力扣题目: 翻转一棵二叉树。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/invert-binary-tree/ ?...解题 递归 ❝这是一道很经典的二叉树问题。我们从根节点开始,递归地对树进行遍历,并从叶子节点先开始翻转。...如果当前遍历到的节点 root 的左右两棵子树都已经翻转,那么我们只需要交换两棵子树的位置,即可完成以 root 为根节点的整棵子树的翻转。 ❞ 递归思想,关键点是找到结束边界和递归点。...题目中,我们先假设二叉树只有一个根节点,根节点有一个左孩子和一个右孩子,即: ?...root.Left right := root.Right root.Left = right root.Right = left return root } 但是二叉树不止这么简单

    26130

    C 语言】字符串模型 ( 字符串翻转模型 )

    文章目录 一、字符串翻转模型 二、完整代码示例 一、字符串翻转模型 ---- 业务场景 : 给定下面的字符串 , 将下面的字符串翻转 ; // 将下面的字符串翻转 char str[]...*p_start = *p_end; // 将首部字符赋值给尾部字符 *p_end = c; // 指向头部的指针自增...p_end--; } 注意 : 上述由于直接在 字符串 所在的内存上进行修改 , 因此必须是 可修改的 栈内存 或 堆内存 , 不能是 全局区内的常量字符串 ; 参考 【错误记录】C...语言中通过指针操作字符串常量出错记录 ( 只有 栈内存 或 堆内存 中的数据才能通过指针修改 | 不要通过指针修改常量区的字符串 ) 报错 , 不要尝试使用指针修改常量区的数据 ; 二、完整代码示例 -...p_start; // 将尾部字符赋值给首部字符 *p_start = *p_end; // 将首部字符赋值给尾部字符 *p_end = c;

    50310

    二叉树——226. 翻转二叉树

    1 题目描述 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。...显然,我们从根节点开始,递归地对树进行遍历,并从叶子节点先开始翻转。...如果当前遍历到的节点root的左右两棵子树都已经翻转,那么我们只需要交换两棵子树的位置,即可完成以root为根节点的整棵子树的翻转。 复杂度分析 时间复杂度:o(N),其中N为二叉树节点的数目。...我们会遍历二叉树中的每一个节点,对每个节点而言,我们在常数时间内交换其两棵子树。 ·空间复杂度:O(N)。使用的空间由递归栈的深度决定,它等于当前节点在二叉树中的高度。...在平均情况下,二叉树的高度与节点个数为对数关系,即O(log N)。而在最坏情况下,树形成链状,空间复杂度为O(N)。 迭代: 递归实现也就是深度优先遍历的方式,那么对应的就是广度优先遍历。

    27020

    翻转二叉树

    翻转二叉树题解集合 DFS写法1 DFS写法2 DFS写法3 对DFS写法的总结 BFS 总结 ---- DFS写法1 思路 一个二叉树,怎么才算翻转了?...即,位于底部的、左右孩子都是 null 的子树,先被翻转。 随着递归向上返回,子树一个个被翻转……整棵树翻转好了。 问题是在递归出栈时解决的。...遍历到 null,它没有子树可交换,返回出这个子树(null) ---- BFS 用层序遍历的方式去遍历二叉树。 根节点先入列,然后出列,出列就 “做事”,交换它的左右子节点(左右子树)。...并让左右子节点入列,往后,这些子节点出列,也被翻转。 直到队列为空,就遍历完所有的节点,翻转了所有子树。 解决问题的代码放在节点出列时。...二叉树的镜像与本题的是一模一样的题型,读者有空也可以尝试去做一下这道题

    22320

    「经典题目回顾」翻转二叉树

    今天来回顾一下二叉树翻转二叉树,绝对是面试题目了,代码不长,又考察对二叉树的操作。 正式因为翻转二叉树代码也很简单,很多同学可以看一下代码就能手撕出来了。 这样就经常会忽略更深层次的东西。...首先使用递归来实现翻转二叉树的时候,前序遍历和后序遍历都可以,唯独中序遍历不行! 因为中序遍历会把某些节点的左右孩子翻转了两次!建议拿纸画一画理解一波。 那么层序遍历可以不可以呢? 可以的!...只要把每一个节点的左右孩子翻转一次的遍历方式都是可以的! 此时一道面试题又出来的,面试题就是翻转二叉树。 如果候选人写出递归方法,就问他用的是前中后序哪种方式的遍历,那么另外两种种遍历行不行?...如果面试中翻转二叉树的题目这么考,就可以看出候选人对二叉树的理解了。 题目不难,但要到处都是陷阱,到处都是细节,这是大厂面试官最喜欢的面试题目。 文章传送门:二叉树:你真的会翻转二叉树么?...在文章中,我提到的这些细节都做了详细的讲解,看完之后,大家对翻转二叉树会有更深一步的理解。

    36120
    领券