q*9
3 楼
BFS, one travesal
h*d
4 楼
1.如果是full tree,可以用递归
2.如果不是full tree,笨办法用level-order traversal遍历,同时把当前节点next指
向queue.peek(),复杂度O(N)
写个java版本
void populate(TreeNode root){
if(root == null)return;
Queue queue = new Queue();
queue.put(root);
Node node;
int thisLevel = 1; int nextLevel = 0;
while(!queue.isEmpty()){
node = queue.pop();
thisLevel--;
if(thisLevel != 0){
node.setNextRight(queue.peek());
}
if(node.getLeft() != null){
queue.put(node.getLeft());
nextLevel++;
}
if(node.getRight() != null{
queue.put(node.getRight());
nextLevel++;
}
if(thisLevel == 0){
thisLevel = nextLevel;
nextLevel = 0;
}
}
}
【在 u****g 的大作中提到】
: 一个二叉树,怎么样做到每个节点指向同level的下一个节点
2.如果不是full tree,笨办法用level-order traversal遍历,同时把当前节点next指
向queue.peek(),复杂度O(N)
写个java版本
void populate(TreeNode root){
if(root == null)return;
Queue
queue.put(root);
Node node;
int thisLevel = 1; int nextLevel = 0;
while(!queue.isEmpty()){
node = queue.pop();
thisLevel--;
if(thisLevel != 0){
node.setNextRight(queue.peek());
}
if(node.getLeft() != null){
queue.put(node.getLeft());
nextLevel++;
}
if(node.getRight() != null{
queue.put(node.getRight());
nextLevel++;
}
if(thisLevel == 0){
thisLevel = nextLevel;
nextLevel = 0;
}
}
}
【在 u****g 的大作中提到】
: 一个二叉树,怎么样做到每个节点指向同level的下一个节点
相关阅读
推拿套套其实挺认同狼的做法的哪里可以弄到微软出的“编程之美”的电子版的书?发面经突破口是wolverine这个单词?其实大家可以这样子来报面经yingying该去找新工作了请教C++里关于创建结构体对象的问题人肉确实强大 人才到处都是啊sr. Linux admin opening我支持大家往死里肉,最好搞得他家破人亡据说有大坑这题哪错了?onsite完之后的thank note怎么写啊?interview 签nda的多么?大家别用英语发言说点题外话Google NYCoffice真不咋地michigan不是wolverine吗?美国it民工的败类c++ primer求助明天on-site,求祝福!