public void linkLevelNodes(BinaryTreeNode root){
Queue q = new Queue();
BinaryTreeNode prev;
BinaryTreeNode temp;
int currentLevelNodeCount = 0;
int nextLevelNodeCount = 0;
if(root == null){
return;
}
q.enQueue(root);
currentLevelNodeCount++;
nextLevelNodeCount = 0;
prev = null;
while(!q.isEmpty()){
temp = q.deQueue();
if(temp.getLeft() != null){
q.enQueue(temp.getLeft());
nextLevelNodeCount++;
}
if(temp.getRight() != null){
q.enQueue(temp.getRight());
nextLevelNodeCount++;
}
if(prev != null){
prev.setNext(temp)
}
prev = temp;
currentLevelNodeCount--;
if(currentLevelNodeCount == 0){
currentLevelNodeCount = nextLevelNodeCount;
nextLevelNodeCount = 0;
prev = null;
}
}
}
06-26
6952
09-22
221