有没有人知道如何获取一个递归出来的属性结构的某一个属性的集合啊(因为是递归出来的,所以这个树形结构层级不明)
获取树的最后一层,可以使用广度优先算法,遍历到完最后一层也就得到了最后结果
public static List<TreeNode> findBottom(TreeNode root) {
Queue<TreeNode> currentQueue = new LinkedList<>();
Queue<TreeNode> nextQueue = new LinkedList<>();
currentQueue.offer(root);
List<TreeNode> result = new ArrayList<>(currentQueue);
while (!currentQueue.isEmpty()) {
TreeNode treeNode = currentQueue.poll();
if (treeNode.left != null) {
nextQueue.add(treeNode.left);
}
if (treeNode.right != null) {
nextQueue.add(treeNode.right);
}
if (currentQueue.isEmpty() && !nextQueue.isEmpty()) {
currentQueue = nextQueue;
result = new ArrayList<>(currentQueue);
nextQueue = new LinkedList<>();
}
}
return result;
}
public class TreeNode {
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode(int value) {
this.val = value;
}
public int getVal() {
return val;
}
public void setVal(int val) {
this.val = val;
}
public TreeNode getLeft() {
return left;
}
public void setLeft(TreeNode left) {
this.left = left;
}
public TreeNode getRight() {
return right;
}
public void setRight(TreeNode right) {
this.right = right;
}
}
层序遍历