一、题目地址
https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof/
二、具体代码
/**
* // Definition for a Node.
* function Node(val,left,right) {
* this.val = val;
* this.left = left;
* this.right = right;
* };
*/
/**
* @param {Node} root
* @return {Node}
*/
// 搜索二叉树的中序遍历(递归方式)
// 时间复杂度:O(N)
// 空间复杂度:O(N)
var treeToDoublyList = function(root) {
if(root === null) {
return null;
}
let pre = null;
let head = null;
function dfs(cur) {
// 遍历到叶子结点,直接返回
if(cur === null) {
return;
}
// 遍历左子树
dfs(cur.left);
if(pre !== null) {
pre.right = cur;
}else {
head = cur;
}
cur.left = pre;
pre = cur;
// 遍历右子树
dfs(cur.right);
}
// 1、中序遍历二叉搜索树
dfs(root);
head.left = pre;
pre.right = head;
return head;
};
三、补充链接
四、补充部分
关注公众号:【深漂程序员小庄】:
内含丰富的学习资源和面试经验(不限前端、java),还有学习交流群可加,并且还有各大厂大佬可一起交流学习,一起进步~添加小庄微信,回复【加群】,可加入互联网技术交流群: