文本描述
[问答题] 题目描述 以下函数用于将一颗二叉搜索树转换成一个有序的双向链表。要求不能创建任何新的节点,只能调整树种节点指针的指向。 如输入下图中左边的二叉搜索树,则输出转换后的排序双向链表: 10 /\ 614 /\/\ 481216 转换成: 4<=>6<=>8<=>10<=>12<=>14<=>16 请指出程序代码中错误的地方(问题不止一处,请尽量找出所有你认为错误的地方): 1#include<stack> 2usingnamespacestd; 3 4structTreeNode{ 5intval; 6TreeNode*left,*right; 7}; 8 9TreeNode*Convert(TreeNode*root){ 10if(root==NULL) 11returnroot; 12 13TreeNode*listHead=NULL; 14TreeNode*listLastNode=NULL; 15 16stack<TreeNode*>s; 17while(root){ 18while(root){ 19root=root->left; 20s.push(root); 21} 22root=s(); 23s.pop(); 24if(listHead==NULL){ 25listHead=root; 26}else{ 27listLastNode->right=root; 28} 29listLastNode=root; 30root=root->right; 31} 32returnlistHead; 33} [问答题] 题目描述 以下代码为适用于ListView的Adapter的部分代码,请根据代码解释下 1)getView方法中对convertView是否为空做了不同处理,目的是什么? 2)viewholder有什么作用? privateList<String>mData=newArrayList<>(); … privatestaticclassViewHolder{ TextViewtext; publicViewHolder(ViewrootView){ text=(TextView)rootView.findViewById(R.id.text); } publicvoidbind(Stringitem){ ... } } @Override publicViewgetView(intposition,ViewconvertView,ViewGroupparent){ Stringitem=mData.get(position); ViewHolderviewHolder; if(null==convertView){ convertView=LayoutInflater.from(mContext).inflate(R.layout.list_item,parent,false); viewHolder=newViewHolder(convertView); convertView.setTag(viewHolder); }else{ viewHolder=(ViewHolder)convertView.getTag(); } viewHolder.bind(item); returnconvertView; } [问答题] 题目描述 列表卡顿怎么优化?首先卡顿怎么量化;其次怎么发现造成卡顿的原因;针对可能发现的问题,又如何解决?请设计一套方案。 [编程题]编程题1 时间限制:2秒 空间限制:65536K 有三只球队,每只球队编号分别为球队1,球队2,球队3,这三只球队一共需要进行n场比赛。现在已经踢完了k场比赛,每场比赛 不能打平,踢赢一场比赛得一分,输了不得分不减分。已知球队1和球队2的比分相差d1分,球队2和球队3的比分相差d2分,每场 比赛可以任意选择两只队伍进行。求如果打完最后的(n-k)场比赛,有没有可能三只球队的分数打平。?? 输入描述: 第一行包含一个数字t(1<=t<=10) 接下来的t行每行包括四个数字n,k,d1,d2(1<=n<=10^12;0<=k<=n,0<=d1,d2<=k) 输出描述: 每行的比分数据,最终三只球队若能够打平,则输出“yes”,否则输出“no” 输入例子1: 2 3300 3333 输出例子1: yes