由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问道G家的面试题。
相关主题
今天面的太惨了....leetcode过的一代工程师
做了一下merge BSTms面试题目
攒人品,Twitter 电面题目发几个面试题
G题,把binary tree里面的sibling节点连接起来mirror 一个binary tree, 用non-recursive解法怎么做
贡献一道G家的onsite题和简单面经(已悲剧)贡献G电 估计挂了
很可能被这题搞挂了,sort linked listMS on-site 面经&求分析(口头offer)
请问如何sort一个linked list?刚才重新回顾了一下那题
几道F家面试题一道挺简单的题给搞砸了
相关话题的讨论汇总
话题: node话题: piter话题: null话题: plft话题: prgt
进入JobHunting版参与讨论
1 (共1页)
l****c
发帖数: 782
1
If there is an tree structure data, design an algorithm for function next()
which returns one data each time and this function will access all the data
only once.
大家用什么方法呢?
C***U
发帖数: 2406
2
是说tree的node只access一次吧 但是可以把数据存起来吧?
这个好像我身边有个人被微软问到了
用bfs 或者dfs可以吧

)
data

【在 l****c 的大作中提到】
: If there is an tree structure data, design an algorithm for function next()
: which returns one data each time and this function will access all the data
: only once.
: 大家用什么方法呢?

l****c
发帖数: 782
3
我也不是很清楚,题就是这样些的。
dfs,不也需要一个visited来记录吗?那就是需要走两遍了。
我的理解是用recursion的in order遍历。要是non-recursion就需要stack了,就有节
点走了2遍;recursion的算不算1遍呢?

【在 C***U 的大作中提到】
: 是说tree的node只access一次吧 但是可以把数据存起来吧?
: 这个好像我身边有个人被微软问到了
: 用bfs 或者dfs可以吧
:
: )
: data

C***U
发帖数: 2406
4
bfs就不用visit两遍啊 把他们都放到queue里面去

【在 l****c 的大作中提到】
: 我也不是很清楚,题就是这样些的。
: dfs,不也需要一个visited来记录吗?那就是需要走两遍了。
: 我的理解是用recursion的in order遍历。要是non-recursion就需要stack了,就有节
: 点走了2遍;recursion的算不算1遍呢?

l****c
发帖数: 782
5
这题,用bfs能解吗?

【在 C***U 的大作中提到】
: bfs就不用visit两遍啊 把他们都放到queue里面去
s********o
发帖数: 861
6
用 BFS
static {
Queue queue;
queue.enqueue(root);
}
Node next() {
Node x = queue.dequeue();
if (x != null) {
for (Node c: x.children()) {
queue.enqueue(c);
}
}
return x;
}
w****x
发帖数: 2483
7
struct NODE
{
int nVal;
NODE* pLft;
NODE* pRgt;

NODE(int n) : nVal(n), pLft(NULL), pRgt(NULL) {}
};
class CIterator
{
public:
CIterator(NODE* pRoot)
{
pushLft(pRoot);
}

NODE* GetNext()
{
if (m_stk.empty()) return NULL;

NODE* pRet = stk.top();
stk.pop();

pushLft(pRet->pRgt);

return pRet
}

private:
void pushLft(NODE* pNode)
{
NODE* pIter = pNode;
while (NULL != pIter)
{
m_stk.push_back(pIter);
pIter = pIter->pLft;
}
}
private:
stack m_stk;
};
l****c
发帖数: 782
8
太强了吧~我完全不会这种利用C++ class的方法,怎么学来的啊大牛~

【在 w****x 的大作中提到】
: struct NODE
: {
: int nVal;
: NODE* pLft;
: NODE* pRgt;
:
: NODE(int n) : nVal(n), pLft(NULL), pRgt(NULL) {}
: };
: class CIterator
: {

r*******h
发帖数: 127
9
这个是binary tree in order traversal的non recursion解法吗?

【在 w****x 的大作中提到】
: struct NODE
: {
: int nVal;
: NODE* pLft;
: NODE* pRgt;
:
: NODE(int n) : nVal(n), pLft(NULL), pRgt(NULL) {}
: };
: class CIterator
: {

1 (共1页)
进入JobHunting版参与讨论
相关主题
一道挺简单的题给搞砸了贡献一道G家的onsite题和简单面经(已悲剧)
问个reverse linked list很可能被这题搞挂了,sort linked list
Print a binary tree in level order but starting from leaf node up to root请问如何sort一个linked list?
请教各位大牛一个K-way merge 的问题几道F家面试题
今天面的太惨了....leetcode过的一代工程师
做了一下merge BSTms面试题目
攒人品,Twitter 电面题目发几个面试题
G题,把binary tree里面的sibling节点连接起来mirror 一个binary tree, 用non-recursive解法怎么做
相关话题的讨论汇总
话题: node话题: piter话题: null话题: plft话题: prgt