二叉树 Z 字型遍历
考察点:遍历
import java.util.*;
public class Solution {
public ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) {
ArrayList<ArrayList<Integer>> result = new ArrayList<>();
Queue<TreeNode> queue = new LinkedList<TreeNode>();
//标记奇偶层 开始为0层 从左->右遍历
boolean flag = true;
if (pRoot == null) {
return result;
}
queue.add(pRoot);
while (queue.size() != 0) {
flag = !flag;
int size = queue.size();
ArrayList<Integer> temp = new ArrayList<Integer>();
for (int i = 0; i < size; i++) {
TreeNode curroot = queue.poll();
temp.add(curroot.val);
if (curroot.left != null)
queue.add(curroot.left);
if (curroot.right != null)
queue.add(curroot.right);
}
// 反转
if (flag) {
Collections.reverse(temp);
}
result.add(temp);
}
return result;
}
}
编程题:写一个函数,找到一个文件夹下所有文件,包括子文件夹
考察点:遍历
import java.io.File;
public class Counter2 {
public static void main(String[] args) {
//取得目标目录
File file = new File("D:");
//获取目录下子文件及子文件夹
File[] files = file.listFiles();
readfile(files);
}
public static void readfile(File[] files) {
if(files == null) {// 如果目录为空,直接退出
return;
}
for(File f:files) {
//如果是文件,直接输出名字
if(f.isFile()) {
System.out.println(f.getName());
}
//如果是文件夹,递归调用
else if(f.isDirectory()) {
readfile(f.listFiles());
}
}
}
}

评论区 0