Giả sử tôi có một nút trong cây, làm thế nào tôi có thể nhận được tất cả các nút lá có tổ tiên là nút này? Tôi đã xác định TreeNode như sau:Làm thế nào để có được tất cả các nút lá của cây?
public class TreeNode<T>
{
/** all children of the node */
private List<TreeNode<T>> children = new ArrayList<TreeNode<T>>();
/** the parent of the node, if the node is root, parent = null */
private TreeNode<T> parent = null;
/** the stored data of the node */
private T data = null;
/** the method I want to implement */
public Set<TreeNode<T>> getAllLeafNodes()
{
Set<TreeNode<T>> leafNodes = new HashSet<TreeNode<T>>();
return leafNodes;
}
}
Tiếp tục đi ngang qua trẻ em và tất cả những trẻ em có danh sách trẻ em trống sẽ được nghỉ? Vấn đề là gì? – SMA
Một nút lá nên có một danh sách trống của trẻ em; vì vậy bạn có thể thực hiện một phương thức isLeaf() trên nút của bạn. Và sau đó bạn sẽ phải kiểm tra đệ quy cho tất cả các nút con của bạn. –
vấn đề được giải quyết, cảm ơn tất cả các bạn – Frank