博客
关于我
LeetCode - 226.翻转二叉树(迭代、递归)2
阅读量:354 次
发布时间:2019-03-04

本文共 1080 字,大约阅读时间需要 3 分钟。

题目:

翻转一棵二叉树。

示例:

输入:

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

输出:

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

方法一:递归

//递归    public TreeNode invertTree(TreeNode root) {           //递归函数的终止条件,节点为空时返回        if (root == null) {               return null;        }//        递归交换当前节点的左子树        TreeNode left = invertTree(root.left);//        递归交换当前节点的右子树        TreeNode right = invertTree(root.right);//        将当前节点的左右子树交换        root.right = left;        root.left = right;        return root;    }

方法二:迭代

class Solution {   	public TreeNode invertTree(TreeNode root) {   		if(root==null) {   			return null;		}		//将二叉树中的节点逐层放入队列中,再迭代处理队列中的元素		LinkedList
queue = new LinkedList
(); queue.add(root); while(!queue.isEmpty()) { //每次都从队列中拿一个节点,并交换这个节点的左右子树 TreeNode tmp = queue.poll(); TreeNode left = tmp.left; tmp.left = tmp.right; tmp.right = left; //如果当前节点的左子树不为空,则放入队列等待后续处理 if(tmp.left!=null) { queue.add(tmp.left); } //如果当前节点的右子树不为空,则放入队列等待后续处理 if(tmp.right!=null) { queue.add(tmp.right); } } //返回处理完的根节点 return root; }}

转载地址:http://jfer.baihongyu.com/

你可能感兴趣的文章
冒泡排序又来啦(C/C++版本)
查看>>
笔试题:找亲戚(Python列表全排列,找能被7整除的数)
查看>>
python负数存储
查看>>
求二维数组中最大值的位置
查看>>
python中sort和sorted的区别
查看>>
防碰撞算法
查看>>
在vue中添加echarts
查看>>
vue中echart数据动态切换,一看就懂
查看>>
通俗的理解Python装饰器所有用法(Decorator)
查看>>
Mac操作数据库Mysql知识点备忘录
查看>>
Python实现理解树,树的遍历,二分查找
查看>>
Python3.6爬虫记录
查看>>
还不懂MySQL索引?这1次彻底搞懂B+树和B-树
查看>>
搞清楚Spring Cloud架构原理的这4个点,轻松应对面试
查看>>
1月份2月份GitHub上最热门的23个Java开源项目
查看>>
maven安装
查看>>
2020第十五届全国大学生智能汽车竞赛——4X4矩阵键盘+Flash调参系统
查看>>
最长无重复子串
查看>>
合并两个有序数组
查看>>
C++学习笔记3--程序内存分配方式
查看>>