Neo4j query return node parameters in recursve loop

I have a dynamic hierarchy of nodes & relations and want to extract max of a Node (p) associated in that hirerchy . Snippet of hierarchies is as under

I have a node c..n having relationship with each of pn nodes , I need to get maximum of property of the c..n node in each pth mentioned above.
I am using -[:has_relation*]- to traverse the tree , but moment i specify p1.property1=67 and , i get a single row.
I need all rows corresponding to the path and maximum of property associated with each subnode.

each Subnode:-

Is it possible to get this in Neo4j ?
Have thought of using FOREACH, but its used for merging/creating new relation/property not returning anything.

Usually you can use a path expression:

like this:

MATCH path (r:Node {id:root})-[:HAS_CHILD*]->(c) WHERE not (c)-[:HAS_CHILD]->()

or the other way round if you want to start at the child