console.log问题,交换二叉树左右节点,交换前后输出相同结果

发布于 2022-09-05 03:03:45 字数 750 浏览 13 评论 0

代码如下:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

完美的未来在梦里 2022-09-12 03:03:45

应该是你看错了…… 你用 console.log(JSON.stringify(F)); 看看

那片花海 2022-09-12 03:03:45

在Chrome上运行时被存了,页面加载完成后打印了缓存的数值,所以是一样的。
Chrome运行截图

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文