二叉树
g33_N
这个作者很懒,什么都没留下…
展开
-
判断一棵树是否是完全二叉树
完全二叉树的定义是,前n-1层都是满的,第n层如有空缺,则是缺在右边,即第n层的最右边的节点,它的左边是满的,右边是空的 根据层序遍历遍历二叉树,直到发现一个空节点,若树种还有未被访问的非空节点,则该二叉树不是完全二叉树template<class T> struct BinaryTreeNode { BinaryTreeNode(T& data) :_data(data)原创 2017-07-28 14:04:25 · 828 阅读 · 0 评论 -
求二叉树中两个节点的最近公共祖先
要考虑以下三种种情况: 1:二叉树每个节点有parent 2:二叉树是搜索二叉树。 3:就是普通二叉树。原创 2017-07-28 14:13:55 · 961 阅读 · 0 评论 -
由前序遍历和中序遍历重建二叉树(前序序列:1 2 3 4 5 6 - 中序序列:3 2 4 1 6 5)
由前序遍历和中序遍历重建二叉树 前序序列(根-左-右):1 2 3 4 5 6 中序序列(左-根-右):3 2 4 1 6 5 1、由前序遍历可知根节点为第一个元素1,在中序遍历序列中找到1对应位置,则1的左边就是左子树324,右边就是右子树65; 2、在找到前序遍历序列中从第二个位置开始往后找相同数目的节点为左子树234,剩余的就是右子树序列65; 3、根据前序遍历规则可知,左子树序原创 2017-07-28 18:06:56 · 2909 阅读 · 0 评论