目录
题目描述
二叉搜索树与双向链表_牛客题霸_牛客网
题目解析
题目答案
最后
题目描述
二叉搜索树与双向链表_牛客题霸_牛客网
题目解析
这里采用的是采用前序遍历的思想,找到要转换的双向链表的头节点也就是这个二叉搜索树的最左节点,找到之后依次递归,采用两个指针的模式,cur和prev,令cur->left=prev prev->right=cur,改变其指针指向,转化成双向链表。然后再去取二叉搜索树的根节点head,一直使其head=head->left,就可以找到双向链表的头节点。
题目答案
class Solution {
public:void Inoder(TreeNode* cur, TreeNode*& prev){if (cur == nullptr){return;}Inoder(cur->left, prev);cur->left = prev;if (prev != nullptr){prev->right = cur;}prev = cur;Inoder(cur->right, prev);}TreeNode* Convert(TreeNode* pRootOfTree) {TreeNode* prev = nullptr;Inoder(pRootOfTree, prev);TreeNode* head = pRootOfTree;while (head && head->left){head = head->left;}return head;}
};
最后
加油