面试题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详细题解