二叉搜索树与双向链表

原创 2015年07月09日 15:12:02




BinaryTreeNode* Convert(BinaryTreeNode*pRootOfTree)
{
BinaryTreeNode* pLastNodeInList = NULL;
ConvertNode(pRootOfTree, &pLastNodeInList);
//pLasstNodeInList指向双向链表的尾结点,我们需要返回头结点
BinaryTreeNode* pHeadOfList = pLastNodeInList;
while (pHeadOfList != NULL&&pHeadOfList->m_pLeft != NULL)
pHeadOfList = pHeadOfList->m_pLeft;
return pHeadOfList;
}
void ConvertNode(BinaryTreeNode* pNode, BinaryTreeNode** pLastNodeInList)
{
if (pNode == NULL)
return;
BinaryTreeNode *pCurrent = pNode;
if (pCurrent->m_pLeft != NULL)
ConvertNode(pCurrent->m_pLeft, pLastNodeInList);
pCurrent->m_pLeft = *pLastNodeInList;
if (*pLastNodeInList != NULL)
(*pLastNodeInList)->m_pRight = pCurrent;
*pLastNodeInList = pCurrent;
if (pCurrent->m_pRight != NULL)
ConvertNode(pCurrent->m_pRight, pLastNodeInList);
}

二叉搜索树与双向链表(java版)

题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 分析:      对于二叉搜索树,用中序搜索...
  • hll174
  • hll174
  • 2016年03月27日 22:18
  • 990

【剑指offer】二叉搜索树转双向链表

思路:这道题目关键在于不能创建新的节点,如不然,我们可以直接将二叉排序树中序遍历保存到一个数组中,而后再建立一个双性链表,将数据保存到双向链表里。 这里不能创建新节点,我们只能改变节点的指向左...
  • mmc_maodun
  • mmc_maodun
  • 2014年05月23日 08:26
  • 4098

【剑指Offer】二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。算法描述使用递归,分别去将当前节点的左右子树变成双向链表,然后获取左边链表的最...
  • zgljl2012
  • zgljl2012
  • 2015年09月19日 02:11
  • 1859

剑指offer 面试题27—二叉搜索树与双向链表

题目: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表,要求不能创建任何新节点,只能调整树中结点指针的指向。最后输出排序后双向链表。 基本思想: 二叉树中每个节点都有两个...
  • wtyvhreal
  • wtyvhreal
  • 2015年05月11日 22:19
  • 885

二叉搜索树与双向链表Java

题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的方向。 思路:在二叉搜索树中,左子结点的值总是小于父子结点的值,右子结点的值总是大于...
  • u013238950
  • u013238950
  • 2016年03月08日 18:51
  • 857

剑指offer:二叉搜索树与双向链表(java)

题目:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建新的结点,只能调整树中结点指针的指向。 比如如下图中的二叉搜索树,则输出转换之后的排序双向链表为:     由于要...
  • abc7845129630
  • abc7845129630
  • 2016年10月03日 22:12
  • 261

二叉搜索树转换为有序双向链表

一、问题描述 输入一棵二叉搜索树,现在要将该二叉搜索树转换成一个排序的双向链表。而且在转换的过程中,不能创建任何新的结点,只能调整树中的结点指针的指向来实现。 二、实现思路 在二叉搜索树...
  • ljianhui
  • ljianhui
  • 2014年03月28日 00:04
  • 17786

《编程之美》——二叉搜索树转换为排序双向链表

题目: 输入一棵二叉搜索树,将该二叉搜索树转换为一个排序的双向链表。要求不能创建任何新的节点,只能调整树中指针的指向。分析与解法: 1、由于要求链表是有序的,可以借助二叉树中序遍历,因为中序遍...
  • zengzhen_CSDN
  • zengzhen_CSDN
  • 2016年04月20日 10:26
  • 945

剑指offer--二叉搜索树与双向链表

题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 /* public class TreeNode { int va...
  • kangaroo835127729
  • kangaroo835127729
  • 2015年04月19日 21:42
  • 1233

面试题27:二叉搜索树和双向链表

题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的节点,只能调整树中节点的指针的指向。        开始没什么思路。但是想到二叉树的所有题目几乎都可以用递归来做...
  • hyp1977
  • hyp1977
  • 2016年07月04日 19:39
  • 125
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二叉搜索树与双向链表
举报原因:
原因补充:

(最多只允许输入30个字)