dovrei fare un metodo che sia iterativo per visitare l' albero e restituirmi una lista ordinate che contiene il nodo e la sua relativa altezza. Ma il conteggio del sottoalbero destro viene sbagliata, cm posso aggiustare il codice?. L' albero è un BST
codice:
public List Beta (List output, int liv ) {
		
		IntBTNodo p = root;
		Stack pila = new Stack ( );
		
		if(p!=null) {
			
			pila.Push(p);
			
			while (!pila.IsEmpty()) {
				
				p = (IntBTNodo)pila.Pop();
				
				if(!pila.IsEmpty() || p.right == null || p.left == null  ) {
					
					liv=liv+1;
				}
				
				output.InsertOrdered(p.visit(),liv);
				
				if(pila.IsEmpty() && (p.right == null || p.left == null)) {					
					liv = 0;
				}
				if(p.right == null && p.left == null) {
					
					liv = liv-1;
					
				}
				
				if(p.right != null) pila.Push(p.right);
					
				
				if(p.left != null) pila.Push(p.left);
				
				
				
			}
			
		}
		return output;