二叉树的Morris遍历
一、Morris 遍历 一般二叉树遍历都需要 O(h) 的空间来保存上一层的信息。而Morris 遍历利用叶子节点的左右孩子来存后序节点从而实现 O(1) 的空间复杂
652 寻找重复的子树
652. 寻找重复的子树 利用序列号字符串的方式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 class Solution { ArrayList<TreeNode> res = new ArrayList<>(); HashMap<String, Integer> map = new HashMap<>(); public List<TreeNode> findDuplicateSubtrees(TreeNode root) { traverse(root); return res; } private String traverse(TreeNode root)
106 从中序与后序遍历序列构造二叉树
106 从中序与后序遍历序列构造二叉树 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public TreeNode buildTree(int[] inorder, int[] postorder) { return buildTreeHelper(inorder, 0, inorder.length-1, postorder, 0, postorder.length-1); } private TreeNode buildTreeHelper(int[] inorder, int i_start, int i_end, int[] postorder, int p_start, int p_end) { if
105 从前序与中序遍历序列构造二叉树
105 从前序与中序遍历序列构造二叉树 经典题目可以用递归方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 public TreeNode buildTree(int[] preorder, int[] inorder) { return build(preorder,