2012-03-06 12 views
0

DefaultTreeModelを使用すると、defaultmutbletreenodegetRoot()はそれが一番高い祖先を返しますが、一世代先に戻って2番目に高い祖先に戻すにはどうしますか?Java:子孫のツリートップの2番目に高い祖先を取得

root 
- ancestor 1 
    - some parent 
    - some child 
- ancestor 2 
    - some parent 
    - another parent 
    - some child 

ので、どのようancestor 1を見つけるために、このブランチでsome child与えられ、各ブランチの深さはrootの下で、各ancestorノードごとに異なります。

私はそれがancestor 2を見つけるだろう、some child与えられ、より深い枝のためにもsome childからancestor 1まで横断する旧姓、と。

答えて

0

これを試してみてください:

TreeNode[] nodeArray = tree.getPathToRoot(nodeInQuestion); 
TreeNode secondFromRoot; 

if ((nodeArray != null) && // I'm not sure this can actually happen. 
    (nodeArray.length > 1)) // current node is not the root node. 
{ 
    secondFromRoot = nodeArray[1]; 
} 
else 
{ 
    ... decide what makes sense here. 
} 
関連する問題