/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
function inorder(pRootOfTree) {
// 使用中序遍历
if (!pRootOfTree) return [null, null];
let [leftH, leftT] = inorder(pRootOfTree.left);
if (leftT) {
leftT.right = pRootOfTree;
pRootOfTree.left = leftT;
// 将左子树的末尾与当前节点头相连接
}
let [rightH, rightT] = inorder(pRootOfTree.right);
if (rightH) {
pRootOfTree.right = rightH;
rightH.left = pRootOfTree;
// 将右子树的开头与当前节点尾相连接
}
return [leftH ? leftH : pRootOfTree, rightT ? rightT : pRootOfTree];
// 返回的结果永远是树的最开头和树的最结尾,如果为空,则是当前的节点进行替换
}
function Convert(pRootOfTree) {
[leftH, rightT] = inorder(pRootOfTree);
console.log(leftH, rightT);
return leftH;
}
module.exports = {
Convert: Convert,
};