如何在通用树中搜索Java非递归中的节点

时间:2018-12-22 22:38:51

标签: java recursion search tree

我是Java的新手,所以每条建议都将受到感激。
我有一棵像带有文件和目录的文件系统的树。我想按名称查找目录。 组件是一个接口,文件和目录都可以实现它。 我在类Directory中编写了此方法,以查找名为name的Directory。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::NameOfBucket/*"
        }
    ]
}

以某种方式,找到我的目录后此方法不会停止。 我尝试写“ <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>Authorization</AllowedHeader> </CORSRule> </CORSConfiguration> ”,但没有帮助。它不会在节点的每个组件中搜索,而只会在第一个组件中搜索。 我究竟做错了什么? 请帮我。 谢谢

1 个答案:

答案 0 :(得分:1)

看起来像你的台词:  未检查else component.getDir(name)的返回值。无论该递归调用返回的是找到的目录还是null(什么都没有找到),下一回合都是循环中的另一回合。

只需检查它是否返回非null,然后再次返回即可。