2012-03-06 51 views
0

使用DefaultTreeModeldefaultmutbletreenodegetRoot()返回它的最高祖先,但是如何让它回到第二个祖先?Java:获得子孙的第二高祖先treenode

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

所以如何找到ancestor 1,鉴于some child在这个分支,每个分支的深度不同,为root下的每个节点ancestor

我的东东从some child移速度达ancestor 1,并进行更深层次的分支,给some child,它会找到ancestor 2

回答

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. 
}