微信 + 石墨文档 远程面试
算法题:
我的答案
class TreeNode{
TreeNode left;
TreeNode right;
int floor ; //第几层?
int val;
}
class Main{
//求第k层有多少个节点
public int findNum(TreeNode root,int k){
if(root == null){
return -1;
}
if(k <= 0){
return -1;
}
if(k == 1){
return 1;
}
root.floor = 1;
Queue queue = new Queue();
queue.offer(root);
int result =0 ;
while(queue.size() != null){
TreeNode node = queue.take();
if(node.floor == k){
result ++;
}
if(node.floor >k){
breakl;
}
if(node.left != null){
queue.offer(node.left);
node.left .floor = node . floor + 1;
}
if(node.right !=null ){
queue.offer(node.right);
node.right .floor = node . floor + 1;
}
}
return result;
}
}
面试官说大体是这样,一些细节还得看下,而且二叉树在第几层一般都不会给
说点什么
您将是第一位评论人!