题解 | 二叉搜索树与双向链表

二叉搜索树与双向链表

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) {
	}
};*/
#include <vector>
class Solution {
public:
    TreeNode* Convert(TreeNode* pRootOfTree) {
		if(pRootOfTree == nullptr)
		{
			return nullptr;;
		}
		vector<TreeNode*>vec;
		inOrder(pRootOfTree, vec);
		for(int i = 0; i < vec.size(); i++)
		{
			if(i == 0)
			{
				vec[i]->left = nullptr;
				vec[i]->right = vec[i + 1];
			}
			else {
				vec[i]->left = vec[i - 1];
				vec[i]->right = vec[i + 1];
			}
		}
		return vec[0];
    }

	void inOrder(TreeNode *node, vector<TreeNode*> &vec) // LVR
	{
		if(node != nullptr)
		{
			inOrder(node->left, vec);
			vec.push_back(node);
			inOrder(node->right, vec);
		}
	}
};

全部评论

相关推荐

09-01 11:31
门头沟学院 Java
buul:七牛云的吧,感觉想法是好的,但是大家没那么多时间弄他这个啊。。。不知道的还以为他是顶尖大厂呢还搞比赛抢hc,只能说应试者的痛苦考察方是无法理解的,他们只会想一出是一出
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
09-23 18:40
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务