class Tree { constructor(left=null, right=null){ this.v = id++; this.left = left; this.right = right; } switch() { if(null != this.left || null != this.right){ let temp = this.right; this.right = this.left; this.left = temp; } if (null != this.left) { this.left.switch(); } if (null != this.right) { this.right.switch(); } } } var id = 0; var A = new Tree(); var B = new Tree(); var C = new Tree(A, B); var D = new Tree(); var E = new Tree(D); var F = new Tree(C, E); console.log(F); F.switch(); console.log(F);
控制台为什么都输出交换后的结果?求解
应该是你看错了…… 你用
console.log(JSON.stringify(F));
看看