递归

node1:n叉树的递归遍历框架

怎么写递归? 写出函数,明确函数定义,然后直接使用。千万别深入里面去。

遍历n叉树。如果让你自定义一个n叉树,这个类怎么写?孩子节点怎么写?

n叉树的遍历

image.png
哇,原来一个list就是一个n叉树。

node2:n叉树的while遍历框架

  1. public boolean hasNext(List<NestInteger> nestedList) {
  2. // 循环拆分列表元素,直到列表第一个元素是整数类型
  3. list = new LinkedList<>(nestedList);
  4. while (!list.isEmpty() && !list.get(0).isInteger()) {
  5. // 当列表开头第一个元素是列表类型时,进入循环
  6. List<NestInteger> first = list.remove(0).getList();
  7. // 将第一个列表打平并按顺序添加到开头
  8. for (int i = first.size() - 1; i >= 0; i--) {
  9. list.addFirst(first.get(i));
  10. }
  11. }
  12. return !list.isEmpty();
  13. }

两个循环:第一个循环root,第二个循环子元素。

node3:求数组交集,用map和双指针。

node4:最长公共子前缀

选择基准;