首页 > 解决方案 > 如何在neo4j中找到从根到最大叶子的树深度

问题描述

我想找到树的深度

我找到了这个解决方案,但我不知道它是否适用于所有情况:

MATCH p=(parent)-[:RELATES*]->(child)
WHERE id(parent) = 30
RETURN p
ORDER BY length(p) DESC
limit 1

这给了我最长的路径,但首先:我不知道它是否总是有效的。其次:我希望输出是深度而不是列表本身。

标签: neo4jcypher

解决方案


此查询应该有效:

MATCH p=(parent)-[:RELATES*]->(child)
WHERE ID(parent) = 30 AND NOT (child)-[:RELATES]>()
RETURN LENGTH(p) AS maxLth
ORDER BY maxLth DESC
LIMIT 1

虽然不是绝对必要的,但它只考虑child叶子所在的路径。


推荐阅读