求一个二叉树的镜像 递归和非递归思想
2018-03-13 10:59
232 查看
public void Mirror(BitNode root) { if(root==null) return;; else { BitNode temp=root.lchild; root.lchild=root.rchild; root.rchild=temp; Mirror(root.lchild); Mirror(root.rchild); } } public void Mirror1(BitNode root){ if(root==null) { return;; } LinkedList<BitNode> stack =new LinkedList<BitNode>(); BitNode current=null; BitNode temp=null; stack.push(root); while (!stack.isEmpty()){ current=stack.pop(); if (current.lchild!=null||current.rchild!=null) { temp=current.lchild; current.lchild=current.rchild; current.rchild=temp; } if(current.lchild!=null) stack.push(current.lchild); if (current.rchild!=null) stack.push(current.rchild); } }
相关文章推荐
- 补第7天 输入一个二叉树,该函数输出它的镜像。
- 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
- 查找二叉树的实现-镜像、层序,先序非递归实现
- 二叉树镜像(递归与非递归)
- C语言强化(十一)二叉树镜像变化 | 要求:不使用递归
- 二叉树的实现&&递归和非递归方式前序、中序、后续遍历&&发现一个节点中序遍历的下一节点
- 二叉树的后序非递归遍历(巧妙思想...)
- C++递归求二叉树镜像
- 求二叉树镜像 -- 采用递归和非递归方法
- 简单构建一个二叉树并且产生镜像
- C语言强化(十一)二叉树镜像变化 | 要求:不使用递归
- 二叉树镜像,递归和循环实现
- 利用分治思想,写一个求解从n个元素里选取m个有多少种组合方案的(非递归)高性能算法
- (10.28)递归建立一个二叉树,交换左右节点,并遍历
- 自己写的一个根据结点名称查找CTreeCtrl树中对应结点的方法(用的是递归思想)
- 简单构建一个二叉树而且产生镜像
- 二叉树(11)----求二叉树的镜像,递归和非递归方式
- 采用二叉链表结构实现二叉树,并以递归遍历思想实现二叉树的创建、二叉树的遍历(先序、中序、后序和层次遍历)
- 输入一个二叉树,输出其镜像。
- 四:二叉树的镜像递归非递归求解