f****9 发帖数: 506 | 1 感觉挂了。
coding都是常见题。感谢国人面试官。
有一个lc上没有,Printing a Binary Tree top-down (column wise)。
design让设计uber backend。
感觉design应该挂了。
lc没有的那个题也折腾了半天,一度纠结在错误的设计,没来得及coding。
还是经验不足,有个不错的想法赶快coding是王道。
design面我的貌似是个大神啊:
https://www.facebook.com/video/video.php?v=432864835468 | b******i 发帖数: 914 | 2 请问第一个题是不是说如果有个binary tree
1
2 3
4 5 6 7
就print 4,2,5,1,3,6,7 ? 还是怎么着
【在 f****9 的大作中提到】 : 感觉挂了。 : coding都是常见题。感谢国人面试官。 : 有一个lc上没有,Printing a Binary Tree top-down (column wise)。 : design让设计uber backend。 : 感觉design应该挂了。 : lc没有的那个题也折腾了半天,一度纠结在错误的设计,没来得及coding。 : 还是经验不足,有个不错的想法赶快coding是王道。 : design面我的貌似是个大神啊: : https://www.facebook.com/video/video.php?v=432864835468
| m******o 发帖数: 32 | | I**********s 发帖数: 441 | 4 Inorder traversal, 遇到叶节点(左右子树都为空)的时候打印? | y*****e 发帖数: 712 | | I**********s 发帖数: 441 | 6 代码如下:
#include
#include
using namespace std;
struct Node {
int val;
Node * left;
Node * right;
Node(int v): val(v), left(NULL), right(NULL) {}
};
void output(stack s) {
if (s.empty()) return;
int tmp = s.top();
s.pop();
output(s);
cout << tmp << " ";
}
void printT(Node * n, stack & s) {
if (n == NULL) return;
s.push(n->val);
if (n->left == NULL && n->right == NULL) {
output(s);
cout << endl;
} else {
printT(n->left, s);
printT(n->right, s);
}
s.pop();
}
int main() {
Node * root = new Node(1);
root->left = new Node(2);
root->left->left = new Node(4);
root->left->right = new Node(5);
root->right = new Node(3);
root->right->left = new Node(6);
root->right->right = new Node(7);
stack s;
printT(root, s);
return 0;
}
输出:
1 2 4
1 2 5
1 3 6
1 3 7 | f****9 发帖数: 506 | 7 不是这个意思。
google Printing a Binary Tree top-down (column wise)看看。
【在 I**********s 的大作中提到】 : 代码如下: : #include : #include : using namespace std; : struct Node { : int val; : Node * left; : Node * right; : Node(int v): val(v), left(NULL), right(NULL) {} : };
| I**********s 发帖数: 441 | 8 哦, 这样啊. 下面应该可以.
/**
* Printing a Binary Tree top-down (column wise). See:
* http://codereview.stackexchange.com/questions/36799/printing-a-binary-tree-top-down-column-wise
* E.g., We have a binary tree, suppose like this:
*
* 8
* / \
* 6 10
* / \ / \
* 4 7 9 12
* / \
* 3 5
* Output should be:
* 3
* 4
* 6 5
* 8 7 9
* 10
* 12
*/
#include
#include
#include | k****s 发帖数: 16 | 9 用HashMap,最后返回最小column和最大column,效率还更高吧。
【在 m******o 的大作中提到】 : 这个题用一个TreeMap就搞定了
| b******i 发帖数: 914 | 10 搞C++的不懂TreeMap
【在 m******o 的大作中提到】 : 这个题用一个TreeMap就搞定了
| | | d********m 发帖数: 101 | | o***c 发帖数: 32 | 12 楼主几轮?是phd么
【在 f****9 的大作中提到】 : 感觉挂了。 : coding都是常见题。感谢国人面试官。 : 有一个lc上没有,Printing a Binary Tree top-down (column wise)。 : design让设计uber backend。 : 感觉design应该挂了。 : lc没有的那个题也折腾了半天,一度纠结在错误的设计,没来得及coding。 : 还是经验不足,有个不错的想法赶快coding是王道。 : design面我的貌似是个大神啊: : https://www.facebook.com/video/video.php?v=432864835468
| h**d 发帖数: 630 | 13 用preorder的话 不能保证打印col时是从上往下的 比如给5加个right child就看出来了
我的c++代码 用BFS:
void printBT_BFS(TreeNode *root, map > &hash, int &mincol,
int &maxcol)
{
if(root==NULL) return;
queue > q; //store the node pointer and the column
q.push(pair(root, 0));
while(!q.empty())
{
pair item = q.front();
q.pop();
TreeNode *node = item.first;
int col = item.second;
hash[col].push_back(node->val);
mincol = min(mincol, col);
maxcol = max(maxcol, col);
if(node->left!=NULL) q.push(pair(node->left, col-1)
);
if(node->right!=NULL) q.push(pair(node->right, col+
1));
}
}
void print(map > &hash, int mincol, int maxcol)
{
for(int i=mincol;i<=maxcol;i++)
{
for(int j=0;j
{
cout<
}
cout<
}
}
【在 I**********s 的大作中提到】 : 哦, 这样啊. 下面应该可以. : /** : * Printing a Binary Tree top-down (column wise). See: : * http://codereview.stackexchange.com/questions/36799/printing-a-binary-tree-top-down-column-wise : * E.g., We have a binary tree, suppose like this: : * : * 8 : * / \ : * 6 10 : * / \ / \
| l******9 发帖数: 26 | 14 右子树相同 column 的节点的level可能更高,所以不能总是加在最后
【在 I**********s 的大作中提到】 : 哦, 这样啊. 下面应该可以. : /** : * Printing a Binary Tree top-down (column wise). See: : * http://codereview.stackexchange.com/questions/36799/printing-a-binary-tree-top-down-column-wise : * E.g., We have a binary tree, suppose like this: : * : * 8 : * / \ : * 6 10 : * / \ / \
| d******v 发帖数: 801 | 15 这题是最近高频题
【在 f****9 的大作中提到】 : 感觉挂了。 : coding都是常见题。感谢国人面试官。 : 有一个lc上没有,Printing a Binary Tree top-down (column wise)。 : design让设计uber backend。 : 感觉design应该挂了。 : lc没有的那个题也折腾了半天,一度纠结在错误的设计,没来得及coding。 : 还是经验不足,有个不错的想法赶快coding是王道。 : design面我的貌似是个大神啊: : https://www.facebook.com/video/video.php?v=432864835468
| a****o 发帖数: 21 | |
|