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

二叉搜索树与双向链表

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) {
	}
};*/
class Solution {
public:	
	void midtrace(TreeNode* root){
		//
		if(root==nullptr) return;
		midtrace(root->left);
		if(savedPtr==nullptr) {
			Head=root;
			root->left=nullptr;
		}
		//非空情况下
		else{
			root->left=savedPtr;
			savedPtr->right=root;
		}
		savedPtr=root;
		midtrace(root->right);
	}
    TreeNode* Convert(TreeNode* pRootOfTree) {
        //中序遍历
		midtrace(pRootOfTree);
		return Head;
    }
	TreeNode* savedPtr=nullptr;
	TreeNode* Head=nullptr;
};

全部评论

相关推荐

一天代码十万三:实习东西太少了,而且体现不出你业务,3个月不可能就这点产出吧,建议实习多写点,玩具项目面试官都不感兴趣的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
02-14 11:10
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务