小米
刚刚小米面试我写了四十分钟树的后续遍历,没写出来,太丢人了。 它给的函数是
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);
}
再多写一个函数就行了呗,谁规定只能写一个函数啊! 也没有项目,我想要不就这样吧,不必再努力了。我好菜啊,看似相同的时间,相同的努力,我的学习效率个学习结果比别人差了好多……