
数据结构之树
谢小龙666666
这个作者很懒,什么都没留下…
展开
-
特定深度节点链表
题目描述特定深度节点链表给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。分析这是一个树的层次遍历问题。就是bfs。看到这个题目的第一想法就是用一个先进先出的队列来维护树的节点们,不断更新就完事了,但是苦于不了解java中的队列怎么表示还有那些方法函数api。找了一篇思路相近的博客,理解了一遍,然后思路捋顺了复写一边,描述如下:初始化:(1)通过双向链表LinkedList实现一个队列queue原创 2021-03-15 21:54:33 · 172 阅读 · 0 评论 -
把二叉搜索树转换为累加树---反序中序遍历
题目描述:给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。解决:链接:把二叉搜索树转换为累加树...原创 2021-03-14 14:24:14 · 184 阅读 · 2 评论 -
二叉搜索子树的最大键值和
二叉搜索树(BST)的定义如下:任意节点的左子树中的键值都 小于 此节点的键值。任意节点的右子树中的键值都 大于 此节点的键值。任意节点的左子树和右子树都是二叉搜索树。如何判断一棵树是不是二叉搜索树呢?判断BST,要注意BST的任意一个节点的键值大于其左子树的所有节点的值,也就是大于左子树的节点的最大值;BST的任意一个节点的键值小于其右子树的所有节点的值,也就是小于右子树的节点的最小值。所以说,对于每一个节点,都要维护一个相应的最小值(Min)和最大值(Max)的信息。记住它!参考:原创 2021-03-13 21:35:30 · 240 阅读 · 0 评论 -
递增顺序查找树
给你一个树,请你按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */struct TreeNode* cur;void inorder(struct Tree原创 2021-03-11 01:34:11 · 89 阅读 · 0 评论