57.反转二叉树

作者: wo不是黄蓉 | 来源:发表于2022-02-18 17:42 被阅读0次

    day9:翻转二叉树(简单)
    思想:二叉树反转相当于对调每个枝叶上的元素,如果元素存在则进行交换,因此直接递归进行元素交换即可。
    PS:不会有人向我一样这么傻吧,之前一直不知道给出的初始化代码中的工具方法是怎么用的,一直是以数组的方式去处理,后来才发现数组只是给出的一个顺序代码,我们想在本地进行测试,就需要按照下面new TreeNode的方式进行创建对象,组装数据结构。

    function TreeNode(val, left, right) {
      this.val = val === undefined ? 0 : val;
      this.left = left === undefined ? null : left;
      this.right = right === undefined ? null : right;
    }
    var invertTree = function (root) {
      if (root === null) return root;
      let left = root.left,
        right = root.right;
    //判断节点是否存在->存在则进行交换
      if (left && right) {
        root.left = right;
        root.right = left;
      }
      invertTree(left);
      invertTree(right);
      return root;
    };
    
    
    let t1 = new TreeNode(4),
      t2 = new TreeNode(2),
      t3 = new TreeNode(7),
      t4 = new TreeNode(1),
      t5 = new TreeNode(3),
      t6 = new TreeNode(6),
      t7 = new TreeNode(9);
    t1.left = t2;
    t1.right = t3;
    t2.left = t4;
    t2.right = t5;
    t3.left = t6;
    t3.right = t7;
    // console.log(t1);
    console.log(invertTree(t1));
    

    相关文章

      网友评论

        本文标题:57.反转二叉树

        本文链接:https://www.haomeiwen.com/subject/nqmylrtx.html