求解一个关于#多叉树算法#的问题

一个多叉树,只保留叶子结点为红色的路径,绿色画出来的节点就是需要删除的部分,各位帮忙看一下,有什么好的解题思路吗,图画的不太好还请见谅

img

你可以用一个递归遍历,每个结点返回自己是否应该被删除,如果不是红叶结点就返回应该被删除
而非叶子结点,则判断它的两个子树,如果它的子树中有一个返回的是不该被删除,那就保留;否则就删除
我说的“是否被删除”,你可以设置递归函数返回值为bool型,或者int型,都可以,只要你能判断就行