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

    二叉树小结及习题—展开为链表

    今天继续说说二叉树的算法。 不知道大家有没有发现,二叉树的很多问题都会涉及到递归算法,今天就来小结一下。...代表每个树都会按照中间节点、左节点、右节点的方式排序,上述例子的前序排列就是:1、2、4、 5、 3、6、7 中序。...所以综合一下,可以得出一种通用的二叉树遍历方法,是一种递归算法: //二叉树的递归 void traverse(TreeNode root) { if (root==null) return...题目 再来个题目进行巩固:二叉树展开为链表 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为...展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1: ?

    45060

    续篇:展开聊下 state 与 渲染树中位置的关系

    本篇,✓ 展开聊下 state 与 渲染树中位置的关系 状态与渲染树中的位置相关 ✊ 相同位置的相同组件会使得 state 被保留下来 ✌️ 相同位置的不同组件会使 state 重置 只要一个组件还被渲染在...UI 树的相同位置,React 就会保留它的 state。...React 通过组件在 渲染树中的位置将它保存的每个状态与正确的组件关联起来。...⚠️ 对 React 来说重要的是组件在 UI 树中的位置,而不是在 JSX 中的位置! React 不知道函数里是如何进行条件判断的,它只会“看到”返回的树。...当子组件 div 从 DOM 中被移除的时候,它底下的整棵树(包含 Counter 以及它的 state)也都被销毁了。

    9300

    二叉树展开为链表

    一、题目 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。...展开后的单链表应该与二叉树 先序遍历 顺序相同。...[0, 2000] 内 -100 <= Node.val <= 100 进阶: 你可以使用原地算法(O(1) 额外空间)展开这棵树吗?...三、解题思路 根据题目描述,需要我们根据给定的二叉树,然后对其进行先序遍历/前序遍历,从而拼装出一条链表。...但是,我们从题目描述的“进阶”部分可以看到它的要求,即:你可以使用原地算法(O(1) 额外空间)展开这棵树吗? 那么我们就不能使用List来进行TreeNode的存储了。

    30840

    Leetcode No.114 二叉树展开为链表(DFS)

    一、题目描述 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。...展开后的单链表应该与二叉树 先序遍历 顺序相同。...[0, 2000] 内 -100 <= Node.val <= 100 二、解题思路 将二叉树展开为单链表之后,单链表中的节点顺序即为二叉树的前序遍历访问各节点的顺序。...因此,可以对二叉树进行前序遍历,获得各节点被访问到的顺序。由于将二叉树展开为链表之后会破坏二叉树的结构,因此在前序遍历结束之后更新每个节点的左右子节点的信息,将二叉树展开为单链表。...对二叉树的前序遍历不熟悉的读者请自行练习「144. 二叉树的前序遍历」。 前序遍历可以通过递归或者迭代的方式实现。以下代码通过递归实现前序遍历。

    23930
    领券