// patch path to parent
if (i > 0) {
case Dir.Left:
stack[i - 1][1].left = stack[i][1];
break;
stack[i - 1][1].right = stack[i][1];
break;
stack[i - 1][1].mid = stack[i][1];
break;
} else {
this._root = stack[0][1];