1 题目
剑指 Offer II 052. 展平二叉搜索树
897. 递增顺序搜索树
2 代码实现
class Solution {
public:
TreeNode* increasingBST(TreeNode* root) {
TreeNode *newRoot = NULL, *pre = NULL;
queue<TreeNode*> q;
dfs(root, q);
while (!q.empty())
{
TreeNode* tmp = q.front();
q.pop();
if (!newRoot)
{
newRoot = tmp;
pre = tmp;
}
else
{
pre->left = NULL;
pre->right = tmp;
pre = tmp;
}
}
pre->left = NULL;
return newRoot;
}
void dfs(TreeNode* root, queue<TreeNode*>& q)
{
if (!root)
return;
dfs(root->left, q);
q.push(root);
dfs(root->right, q);
}
};