3 回答
TA贡献1936条经验 获得超7个赞
import java.util.Arrays;
public class TreeNode implements Comparable<TreeNode>
{
private int label;
private TreeNode leftChild;
private TreeNode rightChild;
//constrctors ...
public int getLabel()
public void setLabel(int x)
public TreeNode getLeft()
public TreeNode getRight()
public void setLeft(TreeNode t)
public void setReght(TreeNode t)
public int compareTo(TreeNode ee)
{
return getLabel()-ee.getLabel();
}
public TreeNode[] complexQuery(TreeNode tree,int n,int m)
{
int Max=10000;
TreeNode line[]=new TreeNode[Max]; //记录节点
int len=0; //记录节点的个数
int count=0; //记录符合条件的个数
line[0]=tree;
int f=0,r;
while (true) //用广度写下所有的节点 也就是一层一层记录
{
for (int i=f;i<len;i++)
if (line[i].getLabel()>=n&&line[i].getLabel()%m==0) count++;
r=len;
for (int i=f;i<len;i++)
{
if (line[i].getLeft()!=null) line[r++]=line[i].getLeft();
if (line[i].getRight()!=null) line[r++]=line[i].getRight();
}
if (r==len) break;
f=len;
len=r;
}
TreeNode list[]=new TreeNode[count]; //要输出的
int ll=0;
for (int i=0;i<len;i++)
if ((line[i].getLabel()>=n&&line[i].getLabel()%m==0)) list[ll++]=line[i];
Arrays.sort(list); //排序 TreeNode继承了Compareble接口
return list;
}
}
//Queue不太熟 只好用数组返回代替
另外,虚机团上产品团购,超级便宜
TA贡献1847条经验 获得超7个赞
import java.util.Arrays;
public class TreeNode implements Comparable<TreeNode>
{
private int label;
private TreeNode leftChild;
private TreeNode rightChild;
//constrctors ...
public int getLabel()
public void setLabel(int x)
public TreeNode getLeft()
public TreeNode getRight()
public void setLeft(TreeNode t)
public void setReght(TreeNode t)
public int compareTo(TreeNode ee)
{
return getLabel()-ee.getLabel();
}
public TreeNode[] complexQuery(TreeNode tree,int n,int m)
{
int Max=10000;
TreeNode line[]=new TreeNode[Max]; //记录节点
int len=0; //记录节点的个数
int count=0; //记录符合条件的个数
line[0]=tree;
int f=0,r;
while (true) //用广度写下所有的节点 也就是一层一层记录
{
for (int i=f;i<len;i++)
if (line[i].getLabel()>=n&&line[i].getLabel()%m==0) count++;
r=len;
for (int i=f;i<len;i++)
{
if (line[i].getLeft()!=null) line[r++]=line[i].getLeft();
if (line[i].getRight()!=null) line[r++]=line[i].getRight();
}
if (r==len) break;
f=len;
len=r;
}
TreeNode list[]=new TreeNode[count]; //要输出的
int ll=0;
for (int i=0;i<len;i++)
if ((line[i].getLabel()>=n&&line[i].getLabel()%m==0)) list[ll++]=line[i];
Arrays.sort(list); //排序 TreeNode继承了Compareble接口
return list;
}
}
//Queue不太熟 只好用数组返回代替
添加回答
举报
