
数据结构与算法
mloves0729
这个作者很懒,什么都没留下…
展开
-
计算二叉树的深度
需求:输入一棵二元树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 分析: /* * 思路1:算出所有路径的深度,然后找出最长的路径,即为深度; (这种方法代码量比较大) * 思路2:递归思想,如果左右子树都为空,则深度为1;如果左右子树都不为空,则深度为左右子树最大值加1 *原创 2015-03-23 22:12:28 · 1367 阅读 · 0 评论 -
判断二叉树是否为平衡二叉树
需求:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 分析: /* * 思路:递归思想,左右子树的深度差不能大于1; * * * 细节:根节点如果为空,是否属于异常还是平衡二叉树 * 左右节点的差应该是绝对值 * */ 代码实现: bo原创 2015-03-23 22:41:31 · 592 阅读 · 0 评论 -
反转单链表
为了正确地反转一个链表,需要调整指针的指向。与指针操作相关代码总是容易出错的,因此最好在动手写程序之前作全面的分析。在面试的时候不急于动手而是一开始做仔细的分析和设计,将会给面试官留下很好的印象,因为在实际的软件开发中,设计的时间总是比写代码的时间长。与其很快地写出一段漏洞百出的代码,远不如用较多的时间写出一段健壮的代码。 实现代码如下: void sll_reverse_solu转载 2015-03-18 23:39:30 · 453 阅读 · 0 评论