LeetCode Algorithm 897. 递增顺序搜索树

Posted _Alex_007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 897. 递增顺序搜索树相关的知识,希望对你有一定的参考价值。

897. 递增顺序搜索树

Ideas

看到搜索二叉树就想到了它的中序遍历序列是有序的,所以干脆直接用中序遍历序列,把每一项的left结点都置为nullptr,right结点置为下一项就OK了。

需要注意中序遍历序列的最后一个节点需要做一些调整:left和right指针都置为空。不然可能会导致出现环。

Code

C++

class Solution 
public:
	vector<TreeNode*> middle_order_traversal(TreeNode* node) 
		TreeNode* item = node;
		stack<TreeNode*> stk;
		vector<TreeNode*> ans;
		while (!stk.empty() || item != nullptr) 
			if (item != nullptr) 
				stk.push(item);
				item = item->left;
			 else 
				item = stk.top();
				stk.pop();
				ans.push_back(item);
				item = item->right;
			
		
		return ans;
	 
    TreeNode* increasingBST(TreeNode* root) 
		vector<TreeNode*> values = middle_order_traversal(root);
		for (int i = 0; i < values.size(); i++) 
            if (i == values.size() - 1) 
                values[i]->left = nullptr;
                values[i]->right = nullptr;
             else 
                cout << values[i]->val << ", ";
                values[i]->left = nullptr;
                values[i]->right = values[i + 1];
            
		
		return values[0];
    
;

以上是关于LeetCode Algorithm 897. 递增顺序搜索树的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 897 Increasing Order Search Tree 解题报告

leetcode树专题894.897,919,951

⭐算法入门⭐《二叉树 - 二叉搜索树》简单05 —— LeetCode 897. 递增顺序搜索树

897. Increasing Order Search Tree

897. Increasing Order Search Tree

BZOJ 1411&&Vijos 1544 : [ZJOI2009]硬币游戏递推,快速幂