数据结构
澄海单挑狂
一切努力,只为巅峰
展开
-
求解二叉树的深度(高度)_C语言
http://blog.csdn.net/u010275850/article/details/45955741这是在阿里面试的一道题,刚开始感觉不是很难。于是按查找最大值和最小值的方法计算二叉树的深度。结果发现这俩个根本不是一回事。即使你不断遍历左子树,找到了最小值,但是其最小值节点依然可能会有右子树,这样深度也就会不断增加。也就是说最大值对应的节点并不等同于右子树的深度,最小值转载 2016-03-30 17:31:05 · 5502 阅读 · 0 评论 -
二叉搜索树转换为有序双向链表
一、问题描述输入一棵二叉搜索树,现在要将该二叉搜索树转换成一个排序的双向链表。而且在转换的过程中,不能创建任何新的结点,只能调整树中的结点指针的指向来实现。二、实现思路在二叉搜索树中,每个结点都有两个分别指向其左、右子树的指针,左子树结点的值总是小于父结点的值,右子树结点的值总是大于父结点的值。而在双向链表中,每个结点也有两个指针,它们分别指向前一个结点和后一个结点。所以这两种转载 2016-03-31 10:32:39 · 349 阅读 · 0 评论 -
二叉树的深度优先遍历和广度优先遍历
深度优先遍历,也就深入的遍历,沿着每一个分支直到走到最后,然后才返回来遍历剩余的节点。二叉树不同于图,图需要标记节点是否已经访问过,因为可能会存在环,而二叉树不会出现环,所以不需要标记。那么,我们只需要一个栈空间,来压栈就好了。因为深度优先遍历,遍历了根节点后,就开始遍历左子树,所以右子树肯定最后遍历。我们利用栈的性质,先将右子树压栈,然后在对左子树压栈。此时,左子树节点是在top上的,所以可以先转载 2016-03-25 15:14:55 · 460 阅读 · 0 评论 -
轻松搞定面试中的二叉树题目
http://blog.csdn.net/luckyxiaoqiang/article/details/7518888转载 2016-03-25 17:11:05 · 339 阅读 · 0 评论