二叉树 Z 字型遍历
考察点:遍历
参考回答:
public
List<List<Integer>> zigzagLevelOrder(TreeNode root) {
List<List<Integer>> res =
new ArrayList<List<Integer>>();
LinkedList<TreeNode> l = new
LinkedList<TreeNode>();
boolean flag = true;
if (root == null) {
return res;
}
l.add(root);
while (l.size() != 0) {
flag = !flag;
int size = l.size();
List<Integer> list = new
ArrayList<Integer>();
for (int i = 0; i < size; i++) {
TreeNode temp = l.remove();
list.add(temp.val);
if (temp.left != null)
l.add(temp.left);
if (temp.right != null)
l.add(temp.right);
}
if (flag) {
Collections.reverse(list);
}
res.add(list);
}
return res;
}
编程题:写一个函数,找到一个文件夹下所有文件,包括子文件夹
考察点:遍历
参考回答:
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());
}
}
}
}
网友评论