讲二次搜索树转化为排序的双向链表
package com.gylhaut.bean;public class TreeNode<T> {public T data;public TreeNode left;public TreeNode right;public TreeNode(T data) {this.left = null;this.right = null;this.data = data;}
}
算法实现:
package com.gylhaut.util;import com.gylhaut.bean.TreeNode;public class BinaryTreeHelper {/*** 指向头节点* @param root* @return*/public static TreeNode convert(TreeNode root){root=convert2Link(root);while (root.left != null){root = root.left;}return root;}/*** 搜索二叉树转成双向链表* @param root* @return*/public static TreeNode convert2Link(TreeNode root){if(root == null|| (root.left == null && root.right == null)){return root;}TreeNode tmp = null;if(root.left != null){tmp= convert2Link(root.left);while (tmp.right != null){tmp = tmp.right;}tmp.right = root;root.left = tmp;}if (root.right !=null){tmp = convert2Link(root.right);while (tmp.left != null){tmp = tmp.left;}tmp.left = root;root.right = tmp;}return root;}}
转载于:https://www.cnblogs.com/gylhaut/p/10270880.html
讲二次搜索树转化为排序的双向链表相关推荐
- LeetCode 426. 将二叉搜索树转化为排序的双向链表
将一个二叉搜索树就地转化为一个已排序的双向循环链表.可以将左右孩子指针作为双向循环链表的前驱和后继指针. 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表. ...
- LeetCode 426. 将二叉搜索树转化为排序的双向链表(BST中序循环遍历)
文章目录 1. 题目 2. 解题 1. 题目 将一个 二叉搜索树 就地转化为一个 已排序的双向循环链表 . 对于双向循环列表,你可以将左右孩子指针作为双向循环链表的前驱和后继指针,第一个节点的前驱是最 ...
- leetcode题解538-把二叉搜索树转化为累加树
问题描述 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和. 解题思路 要找到比某个 ...
- LintCode 661. 把二叉搜索树转化成更大的树
描述 给定二叉搜索树(BST),将其转换为更大的树,使原始BST上每个节点的值都更改为在原始树中大于等于该节点值的节点值之和(包括该节点). 样例 样例1: 输入 : {5,2,13}5/ \2 13 ...
- LeetCode -538 把二叉搜索树转化为累加树(C语言描述)
题目描述: 题目来源: https://leetcode-cn.com/problems/convert-bst-to-greater-tree/ 思路: 采用递归反序中序遍历实现,因为二叉搜索树右节 ...
- 前序中序、后序中序遍历创建二叉树,并检验是否是二叉搜索树,若是则转换为双向链表
finalbst.h //该程序的作用是根据所给的前序序列以及中序序列或者中序序列以及后序序列创建二叉树 #include <iostream> #include <vector&g ...
- JZ36 二叉搜索树与双向链表
目录 题目介绍 二叉搜索树性质介绍 题目分析 解题方法 代码实现 题目介绍 题目链接 JZ36 二叉搜索树与双向链表 题目描述 输入一颗二叉搜索树,将该二叉搜索树转换为一个排序的双向链表 如: 题目要 ...
- 面试题27.二叉搜索树与双向链表
题目:输入一颗二叉搜索树,将该二叉搜索树转换为一个排序的双向链表.要求不能创建 任何新的结点,只能调整树种结点指针的指向.比如输入下图的二叉搜索树,则输出转换 后的双向排序链表. 1 10 2 / \ ...
- 剑指offer面试题27:二叉搜索树与双向链表
题目:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的节点,只能调整树中节点指针的指向. 由于二叉搜索树是有序的,左子结点的值小于根节点的值,右子结点的值大于根节点的值 ...
最新文章
- Github 树形菜单插件
- 托马斯·弗里德曼:美政府应研究任正非的提议
- Docker 容器技术 — Compose 编排
- 模块20135304——刘世鹏
- Windows CE,你妈吗喊你在多核上玩玩
- RPL的故事 ——《x86汇编语言:从实模式到保护模式》读书笔记31
- 开放域知识库问答研究回顾
- web服务器原理(作业四)
- MS CRM 2011——让活动实体在活动菜单中显示
- Android笔记 - android 类型转化错误
- jsp网页实现登录用户名于密码的验证(不涉及数据库操作)
- srsLTE源码学习:GTP:GPRS Turning Protocol- GPRS隧道协议
- scrapy框架之分布式操作
- 微信开发,调用js-SDK接口
- Python 列表和元组学习
- 100万个脑筋急转弯,猜死你
- c语言串口调试助手源码,串口调试工具 1.02 (软件 + 源码)
- 破解 京东登录滑块验证
- 精选机器学习深度学习视频资源合集 !(附下载链接)
- 独立游戏如何对接STEAM SDK