match (root:MENUCATALOG)
where not (:MENUCATALOG)–>(root)
return root
match (root:MENUCATALOG)
optional match (root)<-[]-(n1:MENUCATALOG)
with root, n1
where n1 is null
return root
match (:MENUCATALOG)-[]->(n0:MENUCATALOG)
with collect(distinct id(n0)) as id0
match (root:MENUCATALOG)
where not id(root) in id0
return root
match p=(root:MENUCATALOG)-[*]->(:MENUCATALOG)
return root
order by length(p) desc
limit 1