Here is a flow I threw together that should find the link out nodes that don't have a connecting link. Export your flow in compact format.
- Enter the flow file name in the inject node at the start
- Enter the path to the flow file in the change node that comes next.
In my case I'm using a Mac and the flow file is in my "Downloads" folder.
- press the
Inject node button
What it does is read the flow file and change each occurance of },{ to },qaz{.
It then split the flow on ,qaz.
Next it searches each line for the text link out and ignores any line without that match.
Next it searches each line for the text "links":[] and ignores any line without that match
And finaly dumps the remaining lines to a debug output.

You can then grab the value of the id - in ths case it is d5f694c2.cae2e - and in the hamburger menu select Search Flows insert the id and it will bring you to that node.
Hope it helps you.
[{"id":"46a18e0e.b62268","type":"tab","label":"Find 'link out' node with no links","disabled":false,"info":""},{"id":"50156b53.96d05c","type":"inject","z":"46a18e0e.b62268","name":"Enter file name to search","topic":"","payload":"flows-18.json","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":80,"wires":[["293249d2.9a819e"]]},{"id":"2fbde711.56fd3","type":"file in","z":"46a18e0e.b62268","name":"","filename":"","format":"utf8","chunk":false,"sendError":false,"encoding":"none","x":110,"y":200,"wires":[["b065103f.e48b4"]]},{"id":"a9d13b86.766518","type":"split","z":"46a18e0e.b62268","name":"","splt":",qaz","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":110,"y":320,"wires":[["cf783107.6f1b6"]]},{"id":"b065103f.e48b4","type":"change","z":"46a18e0e.b62268","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"},{","fromt":"str","to":"},qaz{","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":160,"y":260,"wires":[["a9d13b86.766518"]]},{"id":"b0ad2721.5992f","type":"debug","z":"46a18e0e.b62268","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":130,"y":620,"wires":[]},{"id":"293249d2.9a819e","type":"change","z":"46a18e0e.b62268","name":"set file path and add file name","rules":[{"t":"set","p":"path","pt":"msg","to":"/Users/Paul/Downloads/","tot":"str"},{"t":"set","p":"filename","pt":"msg","to":"path&payload","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":190,"y":140,"wires":[["2fbde711.56fd3"]]},{"id":"cf783107.6f1b6","type":"switch","z":"46a18e0e.b62268","name":"look for 'link out'","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"link out","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":150,"y":380,"wires":[["4e33606e.d56f6"]]},{"id":"4e33606e.d56f6","type":"switch","z":"46a18e0e.b62268","name":"look for no links","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"\"links\":[]","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":140,"y":440,"wires":[["d8639871.4ab578"]]},{"id":"693e8372.c48884","type":"json","z":"46a18e0e.b62268","name":"","property":"payload","action":"","pretty":false,"x":110,"y":560,"wires":[["b0ad2721.5992f"]]},{"id":"d8639871.4ab578","type":"change","z":"46a18e0e.b62268","name":"Fix case where link out is last node in flow","rules":[{"t":"change","p":"payload","pt":"msg","from":"}]","fromt":"str","to":"}","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":220,"y":500,"wires":[["693e8372.c48884"]]}]```