LeetCode——226. 翻转二叉树(BFS)

题目描述

image.png

解题思路

BFS是解决这个问题的核心,BFS的初始节点是一个根节点。

  1. 首先将根节点放入数组中。
  2. 取出数组中的首元素,然后交换这个元素的左右节点。
  3. 如果左节点存在,则将左节点加入数组中。
  4. 如果右节点存在,则将右节点加入数组中。

AC代码

var invertTree = function(root) {
    
    
  // 使用BFS解决翻转二叉树问题
  if (!root) return null;
  const res = [root];

  while (res.length) {
    
    
    let cur = res.shift();
    // 交换左右节点
    [cur.left, cur.right] = [cur.right, cur.left];
    if (cur.left) {
    
    
      res.push(cur.left);
    }
    if (cur.right) {
    
    
      res.push(cur.right);
    }
  }
  return root;
};

反思

二叉树镜像和反转二叉树是一个题目,总的来说通过BFS可以高效的解决这个问题。

猜你喜欢

转载自blog.csdn.net/sinat_41696687/article/details/125440250
今日推荐