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

二叉搜索树与双向链表

https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5

采用中序遍历的思路进行解题

最后需要得到的是一个双相队列,将左指向指向小,右指向指向大

设置递归出口,当节点为空,停止递归

step1:先向左递归

step2:中间操作,有两种情况,一种是没有找到队头,将当前节点作为对头和前节点。第二种情况四有对头的情况,前节点的右指向当前节点,当前节点的左指向前节点,再将当前节点赋值给前节点

step3:向右递归

class Solution {
private:
	TreeNode* head = nullptr,* pre = nullptr;
	void InOrder(TreeNode* root){
		if(root == nullptr){
			return ;
		}
		InOrder(root->left);
		if(pre == nullptr){
			pre = root;
			head = root;
		}else{
			pre->right = root;
			root->left = pre;
			pre = root;
		}
		InOrder(root->right);
	}
public:
    TreeNode* Convert(TreeNode* pRootOfTree) {
		if(pRootOfTree==nullptr){
			return nullptr;
		}
		InOrder(pRootOfTree);
		return head;
    }
};
全部评论

相关推荐

今天投了小鹏,收到了AI面,大概会问哪些啊?
期末一定及格:总共4个部分,心理测评、行测、然后就是问岗位、对岗位的理解、过往遇到了哪些难点怎么解决,很简单,没有什么特别专业的问题,都是一些综合素质相关的
小鹏汽车AI面4人在聊
点赞 评论 收藏
分享
点赞 评论 收藏
分享
吴offer选手:HR:我KPI到手了就行,合不合适关我什么事
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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