算法:二叉树翻转

在这里插入图片描述
在这里插入图片描述

描述:二叉树的数据结构如下,需要将二叉树各节点左右翻转

var node1 = {
  value: 1,
  left: {
    value: 2,
    left: {
      value: 4
    },
    right: {
      value: 5
    }
  },
  right: {
    value: 3,
    left: {
      value: 6
    },
    right: {
      value: 7
    }
  }
}

思路:

  1. 先将左右节点交换位置
  2. 再递归子节点
function reverse(node) {
  if (node != null) {
    let temp = node.left;
    node.left = node.right;
    node.right = temp;
    reverse(node.left);
    reverse(node.right);
  }
}

知识点:

先序遍历,先访问跟节点,然后以同样的方式访问左子树和右子树

其实算法并不难,需要一点点积累,必会有所收获,加油!!!

发布了254 篇原创文章 · 获赞 200 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/wu_xianqiang/article/details/103762361
今日推荐