遍历

  • 二叉树 Z 字型遍历

考察点:遍历
参考回答:

public
List> zigzagLevelOrder(TreeNode root) {
        List> res =
new ArrayList>();
        LinkedList l = new
LinkedList();
        boolean flag = true;
        if (root == null) {
            return res;
        }
        l.add(root);
        while (l.size() != 0) {
            flag = !flag;
            int size = l.size();
            List list = new
ArrayList();
            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());
            }
        }
    }
}

你可能感兴趣的:(遍历)