标签:int isp one public link tac reverse new view
5月12日
1 94 Binary Tree Inorder Traverse 栈
public List<Integer> inorderTraversal(TreeNode root) { List<Integer> list = new ArrayList<>(); Stack<TreeNode> stack = new Stack<>(); TreeNode cur = root; while (cur != null || !stack.isEmpty()) { while (cur != null) { stack.push(cur); cur = cur.left; } cur = stack.pop(); list.add(cur.val); cur = cur.right; } return list; }
2 103 Binary Tree Zigzag Level order Treverse
public List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<>(); traver(root, res, 0); return res; } public void traver(TreeNode root, List<List<Integer>> res, int level) { if (root == null) return; if (res.size() <= level) { res.add(new LinkedList<>()); } List<Integer> list = res.get(level); if (level % 2 == 0) list.add(root.val); else list.add(0, root.val); traver(root.left, res, level + 1); traver(root.right, res, level + 1); }
3 144 Binary Tree Preorder Traverse
public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<>(); Stack<TreeNode> stack = new Stack<>(); TreeNode node = root; while (node != null || !stack.isEmpty()) { while (node != null) { res.add(node.val); stack.push(node); node = node.left; } if (!stack.isEmpty()) { node = stack.pop(); node = node.right; } } return res; }
4 145 Binary Tree Postorder Traverse
public List<Integer> postorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<>(); Stack<TreeNode> stack = new Stack<>(); TreeNode pre = null; while (root != null || !stack.isEmpty()) { while (root != null) { stack.push(root); root = root.left; } if (!stack.isEmpty()) { TreeNode peek = stack.peek(); if (peek.right != null && pre != peek.right) { root = peek.right; } else { stack.pop(); res.add(peek.val); pre = peek; } } } return res; }
标签:int isp one public link tac reverse new view
原文地址:http://www.cnblogs.com/whesuanfa/p/6845548.html