二叉树的先序、中序、后序、层次遍历的递归和非递归解法
package tree;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
public class TreeTraverse {
/**
* 先序递归
* @param root
*/
public stat...
分类:
其他好文 时间:
2014-09-05 16:12:21
阅读次数:
249
1.判断是个二叉树是不是平衡二叉树。 二叉树的定义都是利用递归的方法,所以二叉树有着天然的递归属性。所以一般情况下,递归解决二叉树问题中,递归解法比较简洁。平衡二叉树的定义是左子树和右子树均是平衡二叉树,并且左子树和右子树的高度差不超过1,三个条件缺一不可。 根据递归的定义,递归实现起来需要返回.....
分类:
其他好文 时间:
2014-09-01 15:13:43
阅读次数:
295
给定有序链表(元素由小到大), 试问如何将其转换为一个平衡BST?平衡BST: 任意节点的左右子树的深度差值不大于1.主要思想是用递归. Trick是使用快慢指针来获取中间节点. 获得中间节点后, 将其设为此次递归的root, 随后删除此节点, 并将前一节点的next置NULL. 随后, 对中间节点...
分类:
其他好文 时间:
2014-08-28 11:15:19
阅读次数:
162
前一段时间总结了全排列问题的几种递归解法,今天再总结一下如何通过对系统栈行为的模拟来非递归的实现全排列问题。 我们用一个数组stack[]来表示一个栈,用一个top指针来表示栈顶,用一个flags[]数组来标示每一个数字的可用性;用i来表示当前的状态。 初始状态top=0;i=-1;f...
分类:
其他好文 时间:
2014-08-21 22:31:37
阅读次数:
206
N皇后问题:给定8*8棋盘, 放置n个皇后, 使其互相不能攻击(即2个皇后不能放在同一行/列/正反对角线上), 求解共有多少种放置方式?这个问题的解答网上有不少, 但是位操作解法的我看到的不多. 下面贴出代码和图解, 也就不赘述了. 1 class Solution { 2 public: ...
分类:
其他好文 时间:
2014-08-13 18:31:16
阅读次数:
168
有一个n阶的梯子, 你每次只能爬1阶或2阶, 请问共有多少种登顶的爬法?(正好爬完n阶, 不能多也不能少)本题最优解是直接套用菲波那切数列即可(因为菲波那切数列的第n个元素正好等于第n-1个元素和第n-2个元素的和, 与本题的要求完全相同).递归解法:1 int climbStairs(in...
分类:
其他好文 时间:
2014-08-12 16:51:44
阅读次数:
137
//求取下n环和放上n环的步数int ans;//规则一:第一环可以在任何时候放上或取下环柄。//规则二:只有紧跟在领头环后的环可以放上或取下环柄。(领头环是套在柄上的最前面的环int DownRing(int);int UpRing(int);int DownRing(int n){ int...
分类:
其他好文 时间:
2014-08-08 21:13:36
阅读次数:
246
问: 给定二叉树, 如何计算二叉树最大深度?算法描述如下:如果当前节点为空, 返回0(代表此节点下方最大节点数为0)如果当前节点不为空, 返回(其左子树和右子树下方最大节点数中的最大值+1)上述算法的精髓在于递归调用中的终止条件.代码如下: 1 /** 2 * Definition for bin....
分类:
编程语言 时间:
2014-07-22 22:58:15
阅读次数:
189
题目:输入一棵二叉树的根节点,求该树的深度题解分析:二叉树具有天然的递归性,首先应该想递归解法/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNod...
分类:
其他好文 时间:
2014-06-27 15:58:59
阅读次数:
206
题目:楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序列出每一种走法。
要求是使用递归和迭代两种不同的方法来实现。对于我这个算法又渣也没接触过LUA的人来说,真是有点脑子不够用了!!
'
捣鼓了一整天,了解LUA语法,各种google百度,暂且只能弄出递归解法,至于迭代,还得好好理解理解!
--递归
function walkStairs(remaining...
分类:
其他好文 时间:
2014-06-22 14:24:19
阅读次数:
188