It would appear that you're looking for the "Leaf Level Nodes'. I'll also bring attention to the facts that...
- You appear to have the column names for Parent and Child backwards.
- You actually have 3 leaf levels in the data that you presented because the second to the last line is actually an "orphan" that forms it's own "stump" for a tree. As a result of the data, the code below correctly finds 3 leaf nodes.
With that in mind, here's one of the proper methods for finding "Leaf Level Nodes" for a "clean Adjacency List".
--===== Create the test table.
-- This is NOT a part of the solution.
SELECT 39358,39357,-2 UNION ALL
SELECT 39357,39353,-1 UNION ALL
SELECT 39353,0 , 0 UNION ALL
SELECT 39351,39350,-1 UNION ALL
SELECT 39349,0 , 0
--===== Find all "Leaf Level Nodes" in the tree.
-- A "Leaf Level Node" is a node with no "downline"/descendents.
FROM #TestTable a
WHERE a.Parent NOT IN (SELECT b.Child FROM #TestTable b)