一期工程为 左程云 程序员代码面试指南
leetcode每日一题
- 初始化方式及API选择
Stack<Integer> s = new Stack<>();
LinkedList<Integer> s = new LinkedList<>(); //stack也可作为Linkedlist初始化
Queue<PetEnterQueue> q = new LinkedList();
- Stack类API:
s.pop()
s.push()
s.peek()
s.isempty()
- LinkedList类的API:全
s.add()
s.addAll(Collection c)
s.clear()
s.contains()
s.get(index)
s.indexOf(Object o)
- 遍历操作(也不是特别好用)
for(int i : arr){
}
Tree with pre and suf pointer. Inorder Traverse a tree by making it an indexed tree.
// non-iterative
public List<Integer> inorderTraversal(TreeNode root){
List<Integer> res = new ArrayList<>();
Deque<TreeNode> stack = new ArrayDeque<>();
TreeNode cur = root;
while(cur != null){
if(cur.left == null){
res.add(cur.val);
cur = cur.right;
}else{
pre = cur.left;
}
pre.right = cur;
TreeNode tmp = cur;
cur = cur.left;
tmp.left = null;
}
}
return res;
}