【Java】【力扣】94.二叉树的中序遍历
思路
使用递归,1.大问题转化为小问题
2.出口,模拟一下最下层,不要卡死
3.有问题就模拟跑一遍
4.返回值地方:不要往下想,只要直到会返回什么就行
4.
代码
class Solution {//遍历以 root为根的树public List<Integer> inorderTraversal(TreeNode root) {if (root==null){return new ArrayList<>();}//初始化 listList list=new ArrayList<Integer>();//左子树//问题转化为:遍历以root.left为根的树,并把结果返回,追加到原来的list上if(root.left!=null) {list.addAll(inorderTraversal(root.left));}//当前list.add(root.val);//右子树if(root.right!=null) {list.addAll(inorderTraversal(root.right));}return list;}}
总结
1.关于递归
使用递归,1.大问题转化为小问题
2.模拟出口,不要卡死
3.有问题就模拟跑一遍
4.返回值地方:不要往下想,只要直到会返回什么就行