由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一道MS面试题
相关主题
MS面试题怎么返回单链表里面的环的前一个节点的位置?
一道二叉树的老题关于遍历二叉树的复杂度
问个二叉树删除结点的问题讨论 找单链表倒数m的节点
[讨论] 算法超级大总结-- 面试中二叉树中常常考的题目,欢迎大家进来补充求二叉树最大路径和的变体题
如何随机找二叉树中的任意节点?B家面筋
问一道二叉树serialize的问题二叉树按列打印的最大问题是怎么定义列
讨论下面试题的难度分布?问一个老题目
G/F面经二叉树如何判断一个节点是不是在另外两个节点的path上。。。。好像是个老题了。。求解?
相关话题的讨论汇总
话题: 节点话题: 最小话题: ms话题: 给定话题: 面试题
进入JobHunting版参与讨论
1 (共1页)
l***u
发帖数: 26081
1
贡献一道MS面试题
输入:
一棵二叉树和树上的一个结点(每个节点有一个整形数据)
输出:
这棵树上的另一个节点(如果不存在返回NULL),要求这个节点的整形数据与给定节点的差距最小(如
果有多个这样的节点就返回与给定节点的树距离[1]最小的任意一个)
注:
1. 树距离定义为f(x,y)=L(x)-L(c)+L(y)-L(c),其中L是某节点的层数,c是x和y的最小公共祖
先节点
c****p
发帖数: 6474
2
二叉树是BST么

点的差距最小(如
最小公共祖

【在 l***u 的大作中提到】
: 贡献一道MS面试题
: 输入:
: 一棵二叉树和树上的一个结点(每个节点有一个整形数据)
: 输出:
: 这棵树上的另一个节点(如果不存在返回NULL),要求这个节点的整形数据与给定节点的差距最小(如
: 果有多个这样的节点就返回与给定节点的树距离[1]最小的任意一个)
: 注:
: 1. 树距离定义为f(x,y)=L(x)-L(c)+L(y)-L(c),其中L是某节点的层数,c是x和y的最小公共祖
: 先节点

l***u
发帖数: 26081
3
不是二叉搜索树,换句话说,至少要遍历树上的每个节点

【在 c****p 的大作中提到】
: 二叉树是BST么
:
: 点的差距最小(如
: 最小公共祖

m**q
发帖数: 189
4
这个好像直接做就行了
pre-order遍历,在每一个节点判断一下本节点值和给定值的差距,
小于当前的最小差值则更新
为了处理多个最小差值的情况,先遍历一次把从root到给定节点的
路径上的所有节点存到vector里面,同时计算出最小的差值是多少。
然后pre-order遍历,同时记录root到当前节点的路径,在每个节点
判断一下差值,如果等于最小差值,则计算距离是否小于当前的
最小距离,如果小于则更新。
预期复杂度O(n),最坏复杂度O(nlgn),对应于每个节点都要查找路径
的情况

点的差距最小(如
最小公共祖

【在 l***u 的大作中提到】
: 贡献一道MS面试题
: 输入:
: 一棵二叉树和树上的一个结点(每个节点有一个整形数据)
: 输出:
: 这棵树上的另一个节点(如果不存在返回NULL),要求这个节点的整形数据与给定节点的差距最小(如
: 果有多个这样的节点就返回与给定节点的树距离[1]最小的任意一个)
: 注:
: 1. 树距离定义为f(x,y)=L(x)-L(c)+L(y)-L(c),其中L是某节点的层数,c是x和y的最小公共祖
: 先节点

1 (共1页)
进入JobHunting版参与讨论
相关主题
二叉树如何判断一个节点是不是在另外两个节点的path上。。。。好像是个老题了。。求解?如何随机找二叉树中的任意节点?
微软面试的一道题问一道二叉树serialize的问题
来个原创面试题,逗大家玩讨论下面试题的难度分布?
请教一道g算法题G/F面经
MS面试题怎么返回单链表里面的环的前一个节点的位置?
一道二叉树的老题关于遍历二叉树的复杂度
问个二叉树删除结点的问题讨论 找单链表倒数m的节点
[讨论] 算法超级大总结-- 面试中二叉树中常常考的题目,欢迎大家进来补充求二叉树最大路径和的变体题
相关话题的讨论汇总
话题: 节点话题: 最小话题: ms话题: 给定话题: 面试题