100分求一个面试题的算法(遍历)

blddp 2006-07-07 07:52:59
题目:遍历树结构所有叶结点
假设有树一棵
root
nodeA
leafA1
leafA2
nodeB
nodeB1
leafB11
nodeB2
leafB22

这个算法要把nodeA节点下的叶节点leafA1和leafA2
nodeB1节点下的leafB11
nodeB2节点下的leafB22显示出来,其它的不显示该如何实现

这道题让我的智商为0,神阿救救我吧!
...全文
344 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
seesea10523 2006-07-07
  • 打赏
  • 举报
回复
是的啊 数据结构学的太差
5555555555
mhxz5680 2006-07-07
  • 打赏
  • 举报
回复
数据结构没学好

如果楼主的智商为0,我看我的智商就成-50了
wmzsl 2006-07-07
  • 打赏
  • 举报
回复
接分咯
treeroot 2006-07-07
  • 打赏
  • 举报
回复
up
麦子_9 2006-07-07
  • 打赏
  • 举报
回复
up
rosifox 2006-07-07
  • 打赏
  • 举报
回复
或者用while语句
public void iterateNode(RootNode root)
{
Queue<RootNode> queues = new ArrayList();
queues.offer(root);
while (!queues.isEmpty())
{
RootNode rootNode = queues.remove();
for (Node node : rootNode.getChildren())
{
if (node instanceof RootNode)
{
queues.offer((RootNode) node);
}
else
{
showLeaf((LeafNode) node);
}
}
}
}
rosifox 2006-07-07
  • 打赏
  • 举报
回复
interface Node<T>
{
.....
}

class LeafNode implements Node
{
.....
}

class RootNode implements Node
{
private List<Node> nodes;
public List<Node> getChildren()
{
return nodes;
}
....
}

下面遍历一个RootNode
public void iterateNode(RootNode root)
{
for (Node node : root.getChildren())
{
if (node instanceof RootNode)
{
iterateNode((RootNode) node);
}
else
{
showLeaf((LeafNode) node);
}
}
}
blddp 2006-07-07
  • 打赏
  • 举报
回复
怎么都这么谦虚阿!哈哈

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧