【题目描述】 基础:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。 进阶:要求不能创建任何新的节点,只能调整书中节点指针的指向 【基础】 解1:先序遍历二叉树,将遍历结果存入一个队列,再建立双向链表。 1 /** 2 public class TreeNode { 3 int val ...
分类:
其他好文 时间:
2017-11-05 00:33:18
阅读次数:
204
class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } public class Solution { publ... ...
分类:
其他好文 时间:
2017-10-13 12:26:06
阅读次数:
124
一、题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 二、思路 对二叉搜索树中序遍历的结果即为排序的结果,在中序遍历的过程中,建立双向指针。详细过程见代码注释。 三、代码 public class Solution { Tree ...
分类:
其他好文 时间:
2017-10-11 14:11:48
阅读次数:
96
一、题目 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 二、思路 采用递归的方法,详细过程见代码。 三、代码 public cla ...
分类:
其他好文 时间:
2017-10-11 12:50:17
阅读次数:
128
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路:迭代版本: 核心思想是中序遍历,头结点需要单独设置flag变量进行初始化。 if(!s.empty()){ if(flag == 1){ head = s.top(); ...
分类:
其他好文 时间:
2017-09-04 13:13:51
阅读次数:
213
一、题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 二、解法 ...
分类:
其他好文 时间:
2017-08-30 15:30:17
阅读次数:
142
http://blog.csdn.net/qq_27703417/article/details/70980063 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路: 方法一:关键是理解题目要求的意思。将二叉搜索树转变为排序的双 ...
分类:
其他好文 时间:
2017-08-22 16:13:59
阅读次数:
159
题目:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建新的结点。仅仅能调整树中结点指针的指向。 比方例如以下图中的二叉搜索树。则输出转换之后的排序双向链表为: 在二叉树中,每一个结点都有两个指向子节点的指针。在双向链表中。每一个结点也有两个指针。他们分别指向前一个结点和后一个 ...
分类:
编程语言 时间:
2017-06-15 12:41:01
阅读次数:
172
题目: 二叉搜索树与双向链表 链接: https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5?tpId=13&tqId=11179&rp=1&ru=/ta/coding-interviews&qru=/ta/coding- ...
分类:
其他好文 时间:
2017-06-04 13:47:16
阅读次数:
109
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 解题思路:在二叉搜索树中,左结点<根节点<右节点,因此中序遍历就是排序好的。 在我们遍历转换到根节点时,它的左子树已经排好序的链表,并且处于链表中的最后一个结点为当前值最大结 ...
分类:
其他好文 时间:
2017-05-29 11:58:41
阅读次数:
154