此問題涉及遞歸。考慮下面顯示的程序(不是我真實的代碼,但這解釋了我的問題)。將值保存到列表的簡單遞歸函數
功能必須使用遞歸如圖所示,我想要做的是讓每個葉值而不是打印出來的方式保存到列表中。所以最後我得到一個List<String>
,當我打印出來給我的每個葉節點的內容。
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<title text=\"title1\">\n" +
" <comment id=\"comment1\">\n" +
" <data> abcd </data>\n" +
" <data> efgh </data>\n" +
" </comment>\n" +
" <comment id=\"comment2\">\n" +
" <data> ijkl </data>\n" +
" <data> mnop </data>\n" +
" <data> qrst </data>\n" +
" </comment>\n" +
"</title>\n";
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(new InputSource(new StringReader(xml)));
List<String> results = traverse(doc.getFirstChild());
//Want to print out results list here...
public static List<String> traverse(Node node){
System.out.println(node.getNodeName());
for(int i = 0; i < node.getChildNodes().getLength(); i++){
traverse(node.getChildNodes().item(i));
}
return null;
}
所以我的問題是,因爲,它仍然使用遞歸,但保存所有的葉子節點列表的方式如何我重新寫的遍歷功能。然後它返回所有值的列表。
而你的問題是......? –
「必須使用遞歸」暗示這是作業嗎? (這不會是一個問題,但我會重申相應的問題) – Shlublu
你甚至嘗試過什麼嗎?甚至沒有太多要做!不要期望這個網站給你沒有先嚐試的代碼... – f1sh