剑指offer——二叉搜索树与双向链表
来源:互联网 发布:java集成极光推送 编辑:程序博客网 时间:2024/06/14 19:52
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { //双向链表的左边头结点和右边头节点 TreeNode leftHead = null; TreeNode rightHead = null; public TreeNode Convert(TreeNode pRootOfTree) { //递归调用叶子节点的左右节点返回null if(pRootOfTree==null) return null; Convert(pRootOfTree.left); //第一次运行时,它会使最左边叶子节点为链表第一个节点 if(rightHead==null){ leftHead= rightHead = pRootOfTree; }else{ //把根节点插入到双向链表右边,rightHead向后移动 rightHead.right = pRootOfTree; pRootOfTree.left = rightHead; rightHead = pRootOfTree; } //把右叶子节点也插入到双向链表(rightHead已确定,直接插入) Convert(pRootOfTree.right); //返回左边头结点 return leftHead; }}
阅读全文
0 0
- 剑指offer—二叉搜索树与双向链表
- 剑指Offer二叉搜索树与双向链表
- 【剑指offer:】Q27:二叉搜索树与双向链表
- 剑指offer--二叉搜索树与双向链表
- 剑指offer 27 - 二叉搜索树与双向链表
- 剑指offer-二叉搜索树与双向链表
- 《剑指offer》二叉搜索树与双向链表
- 【剑指Offer】二叉搜索树与双向链表
- 剑指offer:二叉搜索树与双向链表
- 剑指offer-二叉搜索树与双向链表
- 剑指Offer--027-二叉搜索树与双向链表
- 剑指offer:二叉搜索树与双向链表
- [剑指offer]二叉搜索树与双向链表
- 《剑指offer》-二叉搜索树与双向链表
- 剑指offer-27二叉搜索树与双向链表
- 剑指offer题解 二叉搜索树与双向链表
- 剑指offer|二叉搜索树与双向链表
- 【剑指offer】二叉搜索树与双向链表
- Eclipse重新定位svn资源库
- 详解JS数据类型
- Java设置session超时(失效)的三种方式
- Java线程池入门必备
- JSP中的异常处理
- 剑指offer——二叉搜索树与双向链表
- 模式识别感知器算法C++写的
- 对万向节锁的理解
- TCP/IP协议中的端口
- 几款流行开源ESB总线简介
- ARP协议以及获取当前局域下主机MAC地址
- adb remount 系统提示只读文件系统Read-only file system,解决用adb disable-verity
- MongoDB windows 下 下载 安装与配置
- C++ 笔试面试题 ~[有答案]