面试题36. 二叉搜索树与双向链表

Posted ocpc

tags:

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

题目:

技术图片

 

 技术图片

 

 

解答:

 1 // 中序遍历即可。只需要记录一个pre指针即可。
 2 
 3  
 4 class Solution {
 5 public:
 6     TreeNode* Convert(TreeNode* pRootOfTree)
 7     {
 8         if(pRootOfTree == nullptr) 
 9         {
10             return nullptr;
11         }
12         
13         TreeNode* pre = nullptr;
14          
15         convertHelper(pRootOfTree, pre);
16          
17         TreeNode* res = pRootOfTree;
18         while(res ->left)
19         {
20             res = res ->left;
21         }
22         return res;
23     }
24      
25     void convertHelper(TreeNode* cur, TreeNode*& pre)
26     {
27         if(cur == nullptr) 
28         {
29             return;
30         }
31          
32         convertHelper(cur ->left, pre);
33          
34         cur ->left = pre;
35         if(pre) 
36         {
37             pre ->right = cur;
38         }
39         pre = cur;
40          
41         convertHelper(cur ->right, pre);    
42     }
43 };

 

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

精选力扣500题 第63题 剑指 Offer 36. 二叉搜索树与双向链表c++/java详细题解

剑指Offer---面试题27:二叉搜索树与双向链表

剑指Offer面试题27(Java版):二叉搜索树与双向链表

经典面试题(二十三)--二叉树与双向链表

刷题记录-剑指offer36:二叉搜索树与双向链表

刷题记录-剑指offer36:二叉搜索树与双向链表