博客
关于我
LeetCode - 226.翻转二叉树(迭代、递归)2
阅读量:355 次
发布时间: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/

你可能感兴趣的文章
Python3中的map()函数!!!
查看>>
Python中的filter()函数!!!1
查看>>
LeetCode:1640. 能否连接形成数组!!!
查看>>
(新手小白必学!)用Python设计和实现聪明的尼姆游戏(人机对战)!!!!
查看>>
LeetCode:283. 移动零!!!1
查看>>
Python实验26:计算文件MD5值
查看>>
端口探测
查看>>
LeetCode:28. 实现 strStr()——————简单
查看>>
java 中 private default protected public 范围
查看>>
LeetCode:697. 数组的度————简单
查看>>
LeetCode:1052. 爱生气的书店老板————中等
查看>>
C语言的6大基本数据类型!(学习C语言小白必备!!)
查看>>
成为一个优秀数据工程师学习内容(1)
查看>>
红黑树学习
查看>>
Redis未授权访问漏洞
查看>>
SpringBoot整合Redis
查看>>
3D案例——旋转木马
查看>>
vue中导入导入 Mint-UI的注意事项
查看>>
Vue——mock模拟数据的使用
查看>>
Nginx配置反向代理与负载均衡
查看>>