In a Parent-Child circular relationship, how to show parent only relattionship

I'm new to Neo4j and Cypher. I have a unique use case and tried to search around for possible solution, but can't seem to find one that work. So hoping the expert out there can help on how to solve this case.

Below is a snippet of graph. There is a circular HAS_CHILD relationship on the leaf node. i.e. 755721-HAS_CHILD ->746431, etc. All leaf nodes show the HAS_CHILD back the parent. How can I change the query so that the HAS_CHILD relationship on the leave node is filter/remove from the graph?
I tried with this Cypher query below, but that doesn't work:
MATCH (i:Inc)
MATCH(i)-[r:HAS_CHILD *1..3]-(i2)
WITH i2, count(r) AS rel_cnt
WHERE rel_cnt > 2
RETURN i2;

Try this:
match (a:Inc)-[r]-((b:Inc)) 
where a.value = 755721 and b.value = 746431
delete r
with a, b
merge (a)-[:HAS_CHILD]->(b)

If you want the children of a node, then you need to match its related nodes with an outgoing relationship from the parent. Your match does not specify a direction, as such, it will circle back because both types are HAS_CHILD.

Thanks for your help, ameyasoft. But this would only work on the specific 2 values nodes. Not sure how I can scale this for any leaf nodes.

Let me know which ones are parent nodes and which ones are child nodes shown in the screenshot.

as shown in the diagram...the leaf nodes, which have only ONE outbound HAS_CHILD relationship would be the child, where the parents have MULTIPLE (>1) outbound HAS_CHILD relationships

to put it another way, I want to delete the relationship on a node that has only ONE outbound HAS_CHILD

Is it fair to assume this scenario? Let me know
[751079, 747586]-[:HAS_CHILD]->(746431)
(746431)-[:HAS_CHILD]->(755721, 750133, 746424)
(746424)-[:HAS_CHILD]->(739895, 753993, 755715, 746427, 747559)

Yes. in this case 751079, 747586 are leaf nodes and need to remove any outbound r:HAS_CHILD

Maybe late to the party and misunderstand what you want. But isn't a leaf node a node with degree 2 in your model. So you could match your leaf nodes using:

match (leaf)
where count { (leaf)--() } = 2

so you could work that into your query like this:

MATCH (i:Inc)
MATCH (i)-[r:HAS_CHILD *1..3]-(i2)
WHERE count { (i2)--() } > 2
RETURN i2;

But I would really remove the symmetric relationships, especially if you are going to do variable length patterns.

Thanks for the tips Hakan! That's the lightbulb that I can needed.
Here's my
MATCH (i:Inc)
MATCH (i)-[r:HAS_CHILD *1..3]-(i2)
WHERE count { (i2)--() } = 2
MATCH(i2)-[rd:HAS_CHILD]->()
DELETE rd

Now all the leaf does have any relationship to the parent.

Next step is to make this graph a DAG...i.e. I need to remove the circular relationship between any parent nodes. i.e. between 746431 and 746424, there should only be ONE relationship. So we need to remove ONE of the directed graph, doesn't matter which one.

I thought about following the same approach except the count condition > 2, but that won't work because it would impeded on all the r:HAS_CHILD on the leaf nodes.
Any suggestion?

tried with this query

MATCH (i1:Inc})
match(i1)-[r:HAS_CHILD *1..3]->(i2)
WHERE count { (i2)--(i3) } > 2
match (i2)-[r1:HAS_CHILD]->(i3)-[r2:HAS_CHILD]->(i2)
delete (r2)
both link between 746431 and 746424 were removed....so that didn't work.

found my answer in this cypher - Remove redundant two way relationships in a Neo4j graph - Stack Overflow

MATCH (i1:Inc )
match(i1)-[r:HAS_CHILD*1..3]->(i2)
WHERE count { (i2)--(i3) } > 2
match (i2)-[r1:HAS_CHILD]->(i3)-[r2:HAS_CHILD]->(i2)
where id(i2) < id(i3)
delete (r2)

Nice that you were able to get forward. To remove symmetric relationships, I usually do a pattern like this:

match (a)-[r:HAS_CHILD]->(b)
where exists { (b)-[:HAS_CHILD]->(a) } // Rel in opposite direction exists
delete r

Happy graphing!