树
liuliuliudy
这个作者很懒,什么都没留下…
展开
-
Leetcode:面试题32 - III. 从上到下打印二叉树 III
题目:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [20,9], [15,7...原创 2020-03-23 17:11:39 · 191 阅读 · 0 评论 -
Leetcode:173. 二叉搜索树迭代器
题目:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用 next() 将返回二叉搜索树中的下一个最小的数。示例:BSTIterator iterator = new BSTIterator(root);iterator.next(); // 返回 3iterator.next(); // 返回 7iterator.hasNext(); // ...原创 2020-03-11 18:16:29 · 95 阅读 · 0 评论 -
Leetcode:543. 二叉树的直径
题目:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回3, 它的长度是路径 [4,2,1,3] 或者[5,2,1,3]。注意:两结点之间的路径长...原创 2020-03-10 15:54:04 · 87 阅读 · 0 评论 -
Leetcode:623在二叉树中增加一行
题目:给定一个二叉树,根节点为第1层,深度为 1。在其第d层追加一行值为v的节点。添加规则:给定一个深度值 d (正整数),针对深度为 d-1 层的每一非空节点 N,为 N 创建两个值为v的左子树和右子树。将N 原先的左子树,连接为新节点v 的左子树;将N 原先的右子树,连接为新节点v 的右子树。如果 d 的值为 1,深度 d - 1 不存在,则创建一个新的根节...原创 2020-03-09 17:06:35 · 61 阅读 · 0 评论 -
Leetcode94. 二叉树的中序遍历
题目:给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]AC代码:使用迭代算法class Solution {public: vector<int> inorderTraversal(TreeNode* root) { vector...原创 2020-03-09 17:01:30 · 79 阅读 · 0 评论 -
Leetcode:1161. 最大层内元素和
题目:难度中等8收藏分享切换为英文关注反馈给你一个二叉树的根节点root。设根节点位于二叉树的第1层,而根节点的子节点位于第2层,依此类推。请你找出层内元素之和最大的那几层(可能只有一层)的层号,并返回其中最小的那个。示例:输入:[1,7,0,7,-8,null,null]输出:2解释:第 1 层各元素之和为 1,第 2 层各元素之和为 7 + ...原创 2020-03-08 19:25:31 · 91 阅读 · 0 评论 -
Leetcode:114. 二叉树展开为链表
题目:给定一个二叉树,原地将它展开为链表。例如,给定二叉树 1 / \ 2 5/ \ \3 4 6将其展开为:1\ 2 \ 3 \ 4 \ 5 \ 6AC代码void flatten(struct TreeNode* ro...原创 2020-03-08 19:18:22 · 69 阅读 · 0 评论 -
Leetcode:116. 填充每个节点的下一个右侧节点指针
题目:给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有next ...原创 2020-03-08 19:14:12 · 99 阅读 · 0 评论