Привет! я новичок и тоже решаю это задание.Вот моя реализация этого метода понимаю что она далека от идеала на зато есть почва для размышлений
swapWithParent() {
if (!this.parent) return
var thisChildLeft = this.left;
var thisChildRight = this.right;
var thisParent = this.parent;
var parentChildRight = this.parent.right;
var parentChildLeft = this.parent.left;
var parentParent = this.parent.parent;
if(parentParent){
var parentParentLeft = this.parent.parent.left;
var parentParentRight = this.parent.parent.right;
}
this.parent.parent = this;
this.parent = parentParent;
if (this === parentChildRight){
if (parentChildLeft){
this.left = parentChildLeft;
parentChildLeft.parent = this;
}
this.right = thisParent;
thisParent.rigth = thisChildRight;
thisParent.left = thisChildLeft;
}
if (this === parentChildLeft){
if (parentChildRight){
this.right = parentChildRight;
parentChildRight.parent = this;
}
this.left = thisParent;
thisParent.rigth = thisChildRight;
thisParent.left = thisChildLeft;
}
if (thisParent === parentParentLeft){
this.parent.left = this;
}
if (thisParent === parentParentRight){
this.parent.right = this;
}
}