剑指Offer---面试题27:二叉搜索树与双向链表
来源:互联网 发布:centos 删除命令 编辑:程序博客网 时间:2024/05/21 15:08
一.题目
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}
二.分析
根据二叉搜索树的知识,我们知道,其中序遍历的节点就是从小到大有序排列的,显然,我们可以在中序遍历的时候,去调整每一个节点的左右指针的指向;
也是分治思想的体现; 将一个大问题分解成方法相同的很多小问题;
注意改变指针的指向问题;
三.代码
TreeNode tail=null; //用于指向双向链表的尾部 TreeNode head=null; //用于指向双向链表的头部,也就是返回值 public TreeNode Convert(TreeNode pRootOfTree) { convert(pRootOfTree); return head; } public void convert(TreeNode pRootOfTree){ if(pRootOfTree==null) return; convert(pRootOfTree.left); //Begin convert to LinkedList if(tail==null){ tail=pRootOfTree; head=pRootOfTree; }else{ tail.right=pRootOfTree; pRootOfTree.left=tail; tail=pRootOfTree; }//End convert to linkedList convert(pRootOfTree.right); }
0 0
- [剑指offer][面试题27]二叉搜索树与双向链表
- [剑指offer]面试题27 二叉搜索树与双向链表
- 剑指Offer:面试题27 二叉搜索树与双向链表
- 《剑指Offer》 面试题27:二叉搜索树与双向链表
- 《剑指Offer》学习笔记--面试题27:二叉搜索树与双向链表
- 剑指offer 面试题27—二叉搜索树与双向链表
- 剑指offer--面试题27:二叉搜索树与双向链表--Java实现
- 【剑指Offer学习】【面试题27:二叉搜索树与双向链表】
- 剑指Offer面试题27(Java版):二叉搜索树与双向链表
- 剑指offer之面试题27:二叉搜索树与双向链表
- 剑指offer之面试题27二叉搜索树与双向链表
- 剑指Offer----面试题27:二叉搜索树与双向链表
- 剑指Offer-面试题27:二叉搜索树与双向链表
- 剑指Offer:面试题27——二叉搜索树与双向链表(java实现)
- 剑指offer面试题27:二叉搜索树与双向链表
- 剑指offer--面试题27:二叉搜索树与双向链表
- 剑指Offer面试题27(Java版):二叉搜索树与双向链表
- 剑指offer——面试题27:二叉搜索树与双向链表
- SqlServer中视图、索引、存储过程等优缺点的介绍
- cocoaPods使用教程 持续更新
- Mysql的Haproxy反向代理和负载均衡
- 视图
- linux下安装tomcat服务及部署web应用
- 剑指Offer---面试题27:二叉搜索树与双向链表
- aop配置了还是报错
- DateTime.Compare(t1,t2)比较两个日期大小
- PHP基础之文件的上传
- HttpClient使用详解
- 使用【SpringMVC】的【Controller注解】
- JDK并发包---(7)允许多个线程同时访问的:信号量(Semaphore)
- R+工业级GBDT︱微软开源 的LightGBM(R包已经开放)
- centos 7 lvs 负载均衡搭建