c_cpp 二叉搜索树与双向链表的.cpp

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 二叉搜索树与双向链表的.cpp相关的知识,希望对你有一定的参考价值。

//输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。


TreeNode* Convert(TreeNode* pRootOfTree)
{
  if(NULL==pRootOfTree) return NULL;
  TreeNode *pRoot, *pLeftNode, *pRightNode, *pTemp;
   
  pRoot = pRootOfTree;
  pLeftNode = pRootOfTree->left;
  pRightNode = pRootOfTree->right;
  if(pLeftNode == NULL && pRightNode == NULL)
    return pRoot;
//  if(pLeftNode)
//  {
       
      pLeftNode = Convert(pLeftNode);
       
      pTemp = pLeftNode;
      while(pTemp !=NULL && pTemp->right != NULL){
          pTemp = pTemp->right;
      }
      if(pLeftNode)
      {
          pRoot->left = pTemp;
          pTemp->right = pRoot;
      }

//  }
   
//  if(pRightNode)
//  {
      pRightNode = Convert(pRightNode);
      if(pRightNode)
      {
          pRoot->right = pRightNode;
          pRightNode->left = pRoot;
      }
//  }
   
  return pLeftNode!=NULL?pLeftNode:pRoot;
}

以上是关于c_cpp 二叉搜索树与双向链表的.cpp的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

25 二叉搜索树与双向链表

二叉树与链表