我有一個Node
類。它有一個children
ArrayList。該列表也由節點組成。並且所述節點具有子列表,等等。遞歸刪除列表中的所有子列表
基本上,它是一棵不太方便的樹。假設我想從中刪除一些Node
。那麼如何遞歸地清除所有的子列表呢?
我有一個hasChildren()
方法,如果指定的節點有子節點,它會返回,我認爲它必須幫助我,但還不知道如何。我還得到了getChildren()
方法,它返回兒童列表。
這裏是我的一些代碼,但它到處都是錯的。
public void removeChild()
{
while(hasChildren())
{
getChildren();
removeChild();
}
children.clear();
}
如果你有一個方法返回第一個孩子,你可以使用這個遞歸的解決方案。 public static void removeChilds(Node node){node.hasChildren()) node.removeChild(node.getFirstChild()); }' –
可能不是重複的,但可能會回答你的問題 - [我怎樣才能調用列表中的每個元素的方法?](http://stackoverflow.com/questions/7221833/how-cani-i-調用每個元素的列表)另外,'if(hasChildren())',而不是'while(hasChildren())',而不是你真的需要這樣做,因爲任何解決方案上面的鏈接應該在空列表上正常工作。 – Dukeling
@RajithPemabandu第一個孩子是什麼意思? 'node.getChildren.get(0)'不會在這種情況下工作嗎?這隻會刪除所有的一級孩子,我錯了嗎? –