public void print() {
		String nullString = "null";
		if (root != null) {
			int treeDepth = root.depth();
			List[] levels = new List[treeDepth];
			for(int i = 0; i < levels.length; i++){
				levels[i] = new ArrayList<Node>();
			}
			levels = getLevelsList(levels);
			
			//Actually print everything.
			for(int i = 0; i < levels.length; i++){
				System.out.print("Lv" + i + ": ");
				for(int j = 0; j < levels[i].size(); j++)
				{
					Node node = (Node)levels[i].get(j);		
					System.out.print(node.data + "["+node.weight+"]|P=" + (node.parent == null ? "NULL" : node.parent.data +"["+node.parent.weight+"]") + " ");
				}
				System.out.println();
			}
		} else {
			System.out.println("There is no data in this tree. Root is null.");
		}
	}