数据结构 js 翻转二叉树

数据结构 js 翻转二叉树,第1张

/**
 * 翻转二叉树
 */
const { tree } = require("./utils/BinarySearchTree");

/**
 * 翻转树
 */
function reverseTree(root) {
  if (root == undefined || root == null) {
    return;
  }

  let queue = [];
  root.level = 1;
  queue.push(root);

  while (queue.length) {
    let node = queue.shift();
    //将节点的左节点,右节点调换位置。
    let leftNode = node.leftNode;
    let rightNode = node.rightNode;
    node.leftNode = rightNode;
    node.rightNode = leftNode;

    if (node.leftNode) {
      queue.push(node.leftNode);
    }

    if (node.rightNode) {
      queue.push(node.rightNode);
    }
  }
}

/**
 * 层序遍历树
 */
function levelOrderDisplay(root, str = "") {
  if (root == undefined || root == null) {
    return;
  }
  let queue = [];
  queue.push(root);
  while (queue.length) {
    let node = queue.shift();
    str += `${node.value}, `;
    if (node.leftNode) {
      queue.push(node.leftNode);
    }
    if (node.rightNode) {
      queue.push(node.rightNode);
    }
  }

  console.log(str.replace(/, $/, ""));
}

levelOrderDisplay(tree);
reverseTree(tree);
levelOrderDisplay(tree);

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1320926.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-11
下一篇 2022-06-11

发表评论

登录后才能评论

评论列表(0条)

保存