刚刚小米面试我写了四十分钟树的后续遍历,没写出来,太丢人了。 它给的函数是

public ArrayList<Integer> xxx(TreeNode root)

我一直都在想这个ArrayList不能每次递归都创建一个呀,但是这个函数只让输入root呀,于是想啊想啊。确实一个多月没看过树了,可能以前学的也不好。是我太菜太菜了,这种程度的代码题没编上我都不敢和朋友说这也太丢人了,感觉我做的那一百多道题二刷的三十多道题就像个笑话。我的记忆力和理解力真的这么差吗。重新做了一下。

public int[] inorderTraversal (TreeNode root) {
        // write code here
        List<Integer> list=new ArrayList<>();
        def(root,list);
        int [] arr=new int[list.size()];
        for(int i=0;i<list.size();i++){
            arr[i]=list.get(i);
         }
        return arr;
      }
    
    public void def(TreeNode root,List<Integer> list){
        if(root==null){
            return;
        }
        def(root.left,list);     
        def(root.right,list);
         list.add(root.val);
        
    }

再多写一个函数就行了呗,谁规定只能写一个函数啊! 也没有项目,我想要不就这样吧,不必再努力了。我好菜啊,看似相同的时间,相同的努力,我的学习效率个学习结果比别人差了好多……