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

二叉搜索树与双向链表

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:
	TreeNode* head = nullptr;
	TreeNode* tail = nullptr;
    TreeNode* Convert(TreeNode* cur) {
        if (cur == nullptr) return nullptr;

		// 中序遍历: 左 中 右		
		Convert(cur->left);
		// 第1次开始转换,确定链表头节点
		if (tail == nullptr) {
			head = cur;
			tail = cur;
		} else {
			tail->right = cur; // 尾节点右指针指向当前节点cur
			cur->left = tail;  // 当前节点cur的左指针指向尾部节点
			tail = cur;  	   // 尾部节点更新到当前节点
		}
		Convert(cur->right);
		return head;		
    }
};

2023-剑指-二叉树 文章被收录于专栏

2023-剑指-二叉树

全部评论

相关推荐

昨天 16:52
门头沟学院
点赞 评论 收藏
分享
11-03 18:50
门头沟学院 Java
迷茫的大四🐶:问就是马上到,一周五天,6个月以上,全国可飞
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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