今天是第十四天,除了二叉树的基本概念外,还有递归法的应用
class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<>(); preoder(root,res); return res; } public void preoder(TreeNode root, List<Integer> res){ if(root == null){ return; } res.add(root.val); preoder(root.left, res); preoder(root.right, res); } }
二叉树前序的递归解法,先让list加入中间节点的值,再依次让左右节点递归
class Solution { public List<Integer> postorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<>(); postOrder(root,res); return res; } public void postOrder(TreeNode root, List<Integer> res){ if (root == null){ return; } postOrder(root.left, res); postOrder(root.right, res); res.add(root.val); } }
二叉树的递归解法,先让左右节点递归后,再让list加入中间节点的值。
class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<>(); inorder(root, res); return res; } public void inorder(TreeNode root, List<Integer> res){ if(root == null){ return ; } inorder(root.left, res); res.add(root.val); inorder(root.right, res); } }
在左右节点递归的中间插入root的值。
今天是基础的二叉树递归解法,明天是迭代法的学习
标签:return,随想录,List,第十四天,二叉树,res,root,public From: https://www.cnblogs.com/catSoda/p/16826981.html