【编程练习】二叉树的反转,Java和Python实现
来源:互联网 发布:php是什么货币单位 编辑:程序博客网 时间:2024/05/18 02:22
Java实现
// 二叉树节点定义public class BinaryTreefanzhuan { class TreeNode{ int value; TreeNode left; TreeNode right; }// 递归public static TreeNode invertNode(TreeNode root){ if (root == null) return null; TreeNode temp = root.left; root.left = invertNode(root.right); root.right = invertNode(temp); return root;}// 非递归//交换左右节点后,将这个两个节点放入队列,继续下一层交换public static TreeNode invertNode2(TreeNode root){ if (root == null) return null; Queue<TreeNode> nodeQueue = new LinkedList<TreeNode>(); while(!nodeQueue.isEmpty()){ TreeNode current = nodeQueue.poll(); TreeNode temp = current.left; current.left = current.right; current.right = temp; if (current.left != null) nodeQueue.add(current.left); if (current.right != null) nodeQueue.add(current.right); } return root;}
Python实现
# 节点类class TreeNode(object): def __init__(self, value, left, right): self.value = value self.left = left self.right = right# 二叉树类class BinaryTree(Object): def __init__(self, value): self.value = value # 递归实现 def invert(self, root): if root == None: return None temp = root.left root.left = self.invert(root.right) root.right = self.invert(temp) return root # 非递归实现 def invert2(self, root): if root == None: return None nodeQueue = Queue.Queue nodeQueue.put(root) while nodeQueue.not_empty: cur = nodeQueue.get() temp = cur.left cur.left = cur.right cur.right = temp if cur.left != None: nodeQueue.put(cur.left) if cur.right != None: nodeQueue.put(cur.right) return root
阅读全文
0 0
- 【编程练习】二叉树的反转,Java和Python实现
- 反转二叉树----java实现
- 二叉树反转java实现
- 二叉树的反转,递归实现和非递归实现。
- 【编程练习】快速排序,Java和Python实现
- [每日练习]C编程实现二叉树
- 【练习】二叉树的实现
- 二叉树的反转
- Python 二叉树练习
- python编程练习---栈的实现
- python编程练习---队列的实现
- Java二叉树的编程实现(数据结构)和正则表达式代码实现
- java 反转二叉树算法
- 编程练习-二叉树(求二叉树的高度)
- 使用栈来实现二叉树的反转(invert)
- java 二叉树的实现 和遍历
- 二叉树的java实现和遍历
- 【数据结构练习】二叉树的实现
- 利用FileChannel完成文件的读、写、复制
- css强制换行和超出隐藏实现
- 全屏
- 2017 Multi-University Training Contest
- 谷歌开发者实验室 google developers codelabs
- 【编程练习】二叉树的反转,Java和Python实现
- 126个常用的正则表达式
- 认识新的二极管
- 初识nodejs15
- 设置TOMCAT启用GZIP压缩 包括导致没返回的问题
- Noip2012 Day1 T3 开车旅行无题解的70分代码(未完成)
- JLRoutes
- Apache Spark 内存管理详解
- nio FileChannel中文乱码问题