树的递归算法典型练习

最近在做微软等复试100题,里面有很多树的算法都是使用递归的,个人觉得做了以后加深了对树的理解。

树本身就是递归定义的,这就导致了很多树的算法自然而然用到递归,并且用非递归的话实现起来很不方便,

比如二叉树的遍历,如果用非递归就得借用栈等数据结构,其本质就是使用栈进行“递归”。

具体代码参见http://www.cnblogs.com/2010Freeze/archive/2010/06/01/1749128.html

下面我们就开始看题目:

1.把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。

4.在二元树中找出和为某一值的所有路径。

9.判断整数序列是不是二元查找树的后序遍历结果。

11.求二叉树中节点的最大距离,姑且定义"距离"为两节点之间边的个数。

15.输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。

16.输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。

39.求一个二叉树中任意两个节点间的最大距离,两个节点的距离的定义是这两个节点间边的个数。

75.二叉树两个结点的最低共同父结。

86.怎样编写一个程序,把一个有序整数数组放到二叉树中。

建议自己好好做做,会有帮助的

答案在http://www.cnblogs.com/v-July-v/archive/2010/12/06/2214143.html

 

 

 

转载于:https://www.cnblogs.com/2010Freeze/articles/2415910.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值