不知道这题为什么算Hard,只是看起来好简单,写了十多分钟,一次通过,打败双100%。

var recoverFromPreorder = function (S) {
let regexp = new RegExp(`(-*)(\\d+)`, 'g')
let result = regexp.exec(S);
let nodes = [];
while (result) {
let level = result[1].length;
let value = Number(result[2] )
if(!nodes [level] ){
nodes [level] = []
}
//生成自己
let node = new TreeNode(value);
nodes [level].push( node );
//挂到父亲下相应的位置
if(level > 0){
let parent = nodes [level-1][nodes [level-1].length-1];
if(parent.left == null){
parent.left = node;
}else if (parent.right == null){
parent.right = node;
}else{
console.log("error")
}
}
result = regexp.exec(S)
}
if(n.length>0){
return nodes [0][0];
}
};
网友评论