编程之美
_IanXiao
这个作者很懒,什么都没留下…
展开
-
3.8求二叉树中节点的最大距离
题目:写一个程序求一棵二叉树中相距最远的两个节点之间的距离。粗箭头的边表示最长距离。分析:相距最远的两个节点,一定是两个叶子节点,或者是一个叶子节点到它的根节点(单枝树)。我们来考虑相距最远的两个节点是两个叶子节点的情况。对于任意一个节点,以该节点为根,假设这个根有k个孩子节点,那么相距最远的两个节点U和V之间的路径与这个根节点的关系有两种情况。1.若路径经过根节点,那么节点U和V属于两个不同的子树原创 2016-05-31 12:26:08 · 537 阅读 · 0 评论 -
3.10 分层遍历二叉树
题目:给定一棵二叉树,要求按分层遍历该二叉树,即从上到下按层次访问该二叉树(每一层将单独输出一行),每一层要求访问的顺序为从左到右,并将节点依次编号。下面是一个例子:输出:1 2 3 4 5 6 7 8代码:结构体的定义:struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int原创 2016-06-02 20:00:40 · 448 阅读 · 0 评论 -
3.11 程序改错(二分查找)
问题:找出一个有序(字典序)字符串数组中arr中值等于字符串v的元素的序号,如果有多个元素满足这个条件,则返回其中序号最大的。分析:二分查找的细节确实很多啊。~~(╯﹏╰)b 我就不实现这个问题了。我主要实现后面几个小题。 给定一个有序(不降序)数组arr,求最大的i使得arr[i]等于v,不存在则返回-1。我自己写的时候,跟书上犯了一模一样的错误…..int bisearch_findMaxI原创 2016-06-03 20:23:36 · 754 阅读 · 0 评论