avatar
u*g
1
一个二叉树,怎么样做到每个节点指向同level的下一个节点
avatar
a*0
2
traverse the tree, mark the height of each node, traverse again, find the
first next node with the same height

【在 u****g 的大作中提到】
: 一个二叉树,怎么样做到每个节点指向同level的下一个节点
avatar
q*9
3
BFS, one travesal
avatar
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的下一个节点
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。