聊聊二叉树的左右子树交换

开发 前端
二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。

[[428239]]

本文转载自微信公众号「三分钟学前端」,作者sisterAn。转载本文请联系三分钟学前端公众号。

翻转一棵二叉树。

示例:

输入:

  1.      4 
  2.    /   \ 
  3.   2     7 
  4.  / \   / \ 
  5. 1   3 6   9 

输出:

  1.      4 
  2.    /   \ 
  3.   7     2 
  4.  / \   / \ 
  5. 9   6 3   1 

遍历+交换左右子树

解题思路: 从根节点开始依次遍历每个节点,然后交换左右子树既可

  1. const invertTree = (root) => { 
  2.     if(!root) return null 
  3.     // 先翻转当前节点的左右子树 
  4.     const temp = root.left 
  5.     root.left = root.right 
  6.     root.right = temp 
  7.     // 然后遍历左子树 
  8.     invertTree(root.left
  9.     // 再遍历右子树 
  10.     invertTree(root.right
  11.     return root 

这里采用的是前序遍历,也可以是后序遍历或层序遍历

 

leetcode:https://leetcode-cn.com/problems/invert-binary-tree

 

责任编辑:武晓燕 来源: 三分钟学前端
相关推荐

2021-11-28 23:54:28

子树B结构

2020-04-27 07:05:58

二叉树左子树右子树

2021-12-03 09:16:03

二叉树打印平衡

2021-09-29 10:19:00

算法平衡二叉树

2021-04-19 07:47:42

数据结构二叉树Tree

2021-04-20 08:37:14

数据结构二叉树

2022-10-26 23:58:02

二叉树数组算法

2021-03-17 08:19:22

二叉树LeetCode

2013-07-15 16:35:55

二叉树迭代器

2021-04-28 20:12:27

数据结构创建

2023-02-01 07:27:46

序列化二叉树根节点

2021-08-27 11:36:44

二叉树回溯节点

2020-09-23 18:25:40

算法二叉树多叉树

2020-11-25 08:25:02

二叉树节点

2018-03-15 08:31:57

二叉树存储结构

2021-05-06 17:46:30

二叉树数据结构

2021-09-15 07:56:32

二叉树层次遍历

2021-09-07 11:01:41

二叉搜索树序数组

2021-03-22 08:23:29

LeetCode二叉树节点

2023-05-08 15:57:16

二叉树数据结构
点赞
收藏

51CTO技术栈公众号