我有一棵樹,樹葉標記爲L,非葉節點標記爲I.我給出樹的前序遍歷。一個例子是IIILLILILLIIILLLIILILLL。我必須爲這個包含的字符串構建huffman樹。我最初傳入一個新的Root(),0和我的treeString作爲我的參數。 TreeString將是上面粘貼了I和L的字符串。出於某種原因,我的代碼導致拋出一個StackOverflow異常。我的代碼是針對makeTree方法如下:從預先遍歷構建二叉樹:堆棧溢出錯誤
public static void makeTree (BinaryNodeInterface<Character> root, int start, String treeString)
{
if (treeString.charAt(start)=='L'){
root.setLeftChild(null);
root.setRightChild(null);
return;
}
BinaryNodeInterface<Character> leftSide = new BinaryNode<Character>();
root.setLeftChild(leftSide);
makeTree(root.getLeftChild(), start++, treeString);
BinaryNodeInterface<Character> rightSide = new BinaryNode<Character>();
root.setRightChild(rightSide);
makeTree(root.getRightChild(), start++, treeString);
}
我不知道是什麼原因造成的計算器引發異常。我認爲我的基本情況在一開始就會返回並處理它。
不得不完全重新做我的樹,但它結束了工作。謝謝。我不記得後和增量運營商之間的差異 – ComicStix 2014-12-17 04:58:09