由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 我又fail了面试
相关主题
过不了leetcode Zigzag Level Order Traversal贡献Amazon的电面经验
Binary Tree Level Order Traversal为什么老通不过问个老题
Tree的traversal也分BFS和DFS?Yelp 面试
请教一道Leetcode 题,多谢又有leetcode题目来请教了
inorder traversal的空间复杂度是O(N) 还是O(logN)?path sum II OJ 超时
leetcode中的binary tree level order traverse II总是有run t灭三哥也不容易
Leetcode: Symmetric Tree有没有好的iterative的解法?leetcode做伤心了
LiveRamp笔试题求解——frog jump看着简单老是写不对的Binary Tree Zigzag Level Order Traversal
相关话题的讨论汇总
话题: list话题: treenode话题: linkedlist话题: root话题: integer
进入JobHunting版参与讨论
1 (共1页)
u***n
发帖数: 21026
1
从最后一层从左到右打印二叉树,然后再上一层,直到root
20分钟,不会,只会in-order, post-order
h****e
发帖数: 2125
2
level order变体,5分钟可以搞定。

【在 u***n 的大作中提到】
: 从最后一层从左到右打印二叉树,然后再上一层,直到root
: 20分钟,不会,只会in-order, post-order

l**o
发帖数: 356
3
可以从根开始从右往左层序遍历,然后结果reverse一下吗?
z*********8
发帖数: 2070
4
or just use a stack

【在 l**o 的大作中提到】
: 可以从根开始从右往左层序遍历,然后结果reverse一下吗?
w**z
发帖数: 8232
5
这种傻逼题,有啥意思?谁他们的在工作里打印二叉树?

【在 u***n 的大作中提到】
: 从最后一层从左到右打印二叉树,然后再上一层,直到root
: 20分钟,不会,只会in-order, post-order

u***n
发帖数: 21026
6
只要是刷题的,我铁定把面试fail了,哈哈,接着面
i*****h
发帖数: 1534
7
用stack好像也有问题,能具体说说怎么弄的吗?

【在 z*********8 的大作中提到】
: or just use a stack
J*********a
发帖数: 50
8
lz是不是面的时候紧张啊。。。
紧张的时候思路容易混乱,这题可以用stack加个list吧:
public static void printTreeNodeLeafToRoot(TreeNode root) {
if (root == null) return;
Deque stk = new LinkedList<>();
stk.push(root);
List list = new ArrayList<>();
list.add(root);
while (!list.isEmpty()) {
List curr = new ArrayList<>();
for (TreeNode tn : list) {
if (tn.right != null) {
stk.push(tn.right);
curr.add(tn.right);
}
if (tn.left != null) {
stk.push(tn.left);
curr.add(tn.left);
}
}
list = curr;
}
while (!stk.isEmpty()) {
System.out.println(stk.pop().val);
}
}
M*****e
发帖数: 16
9
心态很好,加油

【在 u***n 的大作中提到】
: 只要是刷题的,我铁定把面试fail了,哈哈,接着面
a***0
发帖数: 53
10
BFS + Stack?
相关主题
leetcode中的binary tree level order traverse II总是有run t贡献Amazon的电面经验
Leetcode: Symmetric Tree有没有好的iterative的解法?问个老题
LiveRamp笔试题求解——frog jumpYelp 面试
进入JobHunting版参与讨论
h**p
发帖数: 211
11
这题stack占空间太多,而且容易写错
LC的level order traversal, 然后把结果反一下
f****e
发帖数: 923
12
leetcode 原题吧?
https://leetcode.com/problems/binary-tree-level-order-traversal-ii/
Given a binary tree, return the bottom-up level order traversal of its nodes
' values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree {3,9,20,#,#,15,7},
3
/
9 20
/
15 7
return its bottom-up level order traversal as:
[
[15,7],
[9,20],
[3]
]

【在 u***n 的大作中提到】
: 从最后一层从左到右打印二叉树,然后再上一层,直到root
: 20分钟,不会,只会in-order, post-order

k**l
发帖数: 2966
13
直接 in order,
弄一个 vector of vectors, 行数代表层数。
in-order 每次 call子树的时候 pass 一个 level+1 parameter, 访问节点时按着自己
的 level 把 val push 到 vector 里面就行

【在 u***n 的大作中提到】
: 从最后一层从左到右打印二叉树,然后再上一层,直到root
: 20分钟,不会,只会in-order, post-order

j***y
发帖数: 1640
14
不过呢,以前没有做过的话,临时想出来 20 分钟还是有点紧。
e***a
发帖数: 1661
15
which company?
f**********e
发帖数: 288
16
如果, 最后一层不是平的话该怎么办?
f**********e
发帖数: 288
I*******x
发帖数: 69
18
来两个Queue和一个List
一个queue里面装了当前Level的node,从左往右放好的,再一个一个取出来,将他们的
值放进List,
另外一个queue放下一level的node,将当前level取出来的node的left和right放进去,
直到当前level的queue为空,然后将currentQueue = nextQueue;nextQueue = new
LinkedLIst(); list放进最终的List> 里面的第一个。
直接上code:
public List> levelOrderBottom(TreeNode root) {
List> result = new ArrayList>();
if(root == null) return result;

LinkedList cq = new LinkedList();
LinkedList nq = new LinkedList();
cq.add(root);
List numbers = new ArrayList();

while(!cq.isEmpty()){
TreeNode node = cq.remove();
numbers.add(node.val);

if(node.left != null){
nq.add(node.left);
}
if(node.right != null){
nq.add(node.right);
}
if(cq.isEmpty()){
cq = nq;
nq = new LinkedList();
result.add(0,numbers);
numbers = new ArrayList();
}
}
return result;
}
u***n
发帖数: 21026
19
回家想了一想,没写code,直接画个草稿,和你的想法是一样的
从root开始,放入一个新Q,然后DeQ这个Q,把他的小孩按照right left的顺序enQ另外
一个新Q,前面那个DeQ出来的放在list的尾巴上,然后访问从前面那个Q从右到左的出
来的孩子Q,如此往复,每次deQ出来的放在list的最前面,最后这个list就是啦
回家画个图马上出来了,面试的时候傻傻的盯着屏幕想不出来,20分钟直接放弃
Amazon AWS组,不过我也没有多大兴趣去就是了,听说很忙

【在 I*******x 的大作中提到】
: 来两个Queue和一个List
: 一个queue里面装了当前Level的node,从左往右放好的,再一个一个取出来,将他们的
: 值放进List,
: 另外一个queue放下一level的node,将当前level取出来的node的left和right放进去,
: 直到当前level的queue为空,然后将currentQueue = nextQueue;nextQueue = new
: LinkedLIst(); list放进最终的List> 里面的第一个。
: 直接上code:
: public List> levelOrderBottom(TreeNode root) {
: List> result = new ArrayList>();
: if(root == null) return result;

J*********a
发帖数: 50
20


【在 u***n 的大作中提到】
: 回家想了一想,没写code,直接画个草稿,和你的想法是一样的
: 从root开始,放入一个新Q,然后DeQ这个Q,把他的小孩按照right left的顺序enQ另外
: 一个新Q,前面那个DeQ出来的放在list的尾巴上,然后访问从前面那个Q从右到左的出
: 来的孩子Q,如此往复,每次deQ出来的放在list的最前面,最后这个list就是啦
: 回家画个图马上出来了,面试的时候傻傻的盯着屏幕想不出来,20分钟直接放弃
: Amazon AWS组,不过我也没有多大兴趣去就是了,听说很忙

相关主题
又有leetcode题目来请教了leetcode做伤心了
path sum II OJ 超时看着简单老是写不对的Binary Tree Zigzag Level Order Traversal
灭三哥也不容易问个算法题
进入JobHunting版参与讨论
I*******g
发帖数: 7600
21
你怎么一天到晚都在面试
当前工作不忙
老板不管你?

【在 u***n 的大作中提到】
: 从最后一层从左到右打印二叉树,然后再上一层,直到root
: 20分钟,不会,只会in-order, post-order

u***n
发帖数: 21026
22
工作很忙啊,忙才没时间准备老fail掉
今天的面试上上周就schedule了,我基本没准备就上了,实在忙的没时间刷题
CC里面没有一个人想留下来的,连我印度PM自己都在刷题跑路
大家心知肚明,不说而已

【在 I*******g 的大作中提到】
: 你怎么一天到晚都在面试
: 当前工作不忙
: 老板不管你?

h*******3
发帖数: 122
23
看你说你在CC工作好些年了,早有h1b了,按理来说CC工资不会低吧。
而且,有意思的是,认识的几个在CC的印度人,根本不想换Full time job, 人家工资
10w,
还是小城市,而且一天就干几个小时活,想换项目,随便几个电话搞定,说full time
太累了。。。

【在 u***n 的大作中提到】
: 工作很忙啊,忙才没时间准备老fail掉
: 今天的面试上上周就schedule了,我基本没准备就上了,实在忙的没时间刷题
: CC里面没有一个人想留下来的,连我印度PM自己都在刷题跑路
: 大家心知肚明,不说而已

u***n
发帖数: 21026
24
啊,我怎么刚好是相反的

time

【在 h*******3 的大作中提到】
: 看你说你在CC工作好些年了,早有h1b了,按理来说CC工资不会低吧。
: 而且,有意思的是,认识的几个在CC的印度人,根本不想换Full time job, 人家工资
: 10w,
: 还是小城市,而且一天就干几个小时活,想换项目,随便几个电话搞定,说full time
: 太累了。。。

1 (共1页)
进入JobHunting版参与讨论
相关主题
看着简单老是写不对的Binary Tree Zigzag Level Order Traversalinorder traversal的空间复杂度是O(N) 还是O(logN)?
问个算法题leetcode中的binary tree level order traverse II总是有run t
leetcode number of islands为什么不能用BFS?Leetcode: Symmetric Tree有没有好的iterative的解法?
F电面LiveRamp笔试题求解——frog jump
过不了leetcode Zigzag Level Order Traversal贡献Amazon的电面经验
Binary Tree Level Order Traversal为什么老通不过问个老题
Tree的traversal也分BFS和DFS?Yelp 面试
请教一道Leetcode 题,多谢又有leetcode题目来请教了
相关话题的讨论汇总
话题: list话题: treenode话题: linkedlist话题: root话题: integer