console.log问题,交换二叉树左右节点,交换前后输出相同结果
代码如下:
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);
控制台为什么都输出交换后的结果?求解
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
应该是你看错了…… 你用
console.log(JSON.stringify(F));
看看在Chrome上运行时被存了,页面加载完成后打印了缓存的数值,所以是一样的。