二叉树的java实现今天刷了一道算法题, 814 二叉树剪枝
题解用的后序遍历
回顾一下 二叉树的前中后遍历 递归
Class TreeNode { int val; TreeNode left; TreeNode right; TreeNode (){ } TreeNode (int val) { this.val = val; } TreeNode (int val, TreeNode left, TreeNode right) { this.val = val; this.right = right; this.left = left } }1.前序遍历 (根左右)
List2.中序遍历 (左根右)ans = new ArrayList<>(); public List traverse(TreeNode root){ if (root == null) return null; ans.add(root.val); root.left = traverse(root.left); root.right = traverse(root.right); return ans; }
List3.后序遍历 (左右根)ans = new ArrayList<>(); public List traverse(TreeNode root){ if (root == null) return null; root.left = traverse(root.left); ans.add(root.val); root.right = traverse(root.right); return ans; }
List碰到二叉树算法题, 先想递归!!!ans = new ArrayList<>(); public List traverse(TreeNode root){ if (root == null) return null; root.left = traverse(root.left); root.right = traverse(root.right); ans.add(root.val); return ans; }