您的位置:首页 > 其它

二叉搜索树与双向链表转换

2019-06-06 16:32 88 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/zb_915574747/article/details/91045844

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

二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树

中序遍历,代码

[code]class Solution {
public:
TreeNode* Convert(TreeNode* root)
{
if(!root)
return nullptr;
Inorder(root);
return res;
}
void Inorder(TreeNode *root){
if(!root)
return;
Inorder(root->left);
if(!cur){
cur=root;
res=root;
}
else{
cur->right=root;
root->left=cur;
cur=root;
}
Inorder(root->right);
}
private:
TreeNode *cur=nullptr,*res=nullptr;
};

这篇写的详细:https://www.geek-share.com/detail/2680865958.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: