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

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

成都创新互联专注于企业成都全网营销、网站重做改版、惠济网站定制设计、自适应品牌网站建设、H5高端网站建设商城网站定制开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为惠济等各大城市提供网站开发制作服务。

翻转一棵二叉树。

示例:

输入:

 
 
 
  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

网页名称:聊聊二叉树的左右子树交换
当前地址:http://www.shufengxianlan.com/qtweb/news35/24185.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联