题解 | #二叉搜索树与双向链表#
二叉搜索树与双向链表
https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: // 使用中序遍历 void inorderTrave(TreeNode* root, TreeNode* left, TreeNode* right){ if (left != nullptr) { inorderTrave(left, left->left, left->right); if (left->right != nullptr) { left = left->right; } root->left = left; left->right = root; } if (right != nullptr) { inorderTrave(right, right->left, right->right); if (right->left != nullptr) { right = right->left; } root->right = right; right->left = root; } } TreeNode* Convert(TreeNode* pRootOfTree) { if (pRootOfTree == nullptr) { return nullptr; } inorderTrave(pRootOfTree, pRootOfTree->left, pRootOfTree->right); while (pRootOfTree->left != nullptr) { pRootOfTree = pRootOfTree->left; } return pRootOfTree; } };
在线编程练习 文章被收录于专栏
C++在线编程练习题解