后序遍历DFS1.删除给定值的叶子节点(删除节点)

首先想这个题的普通节点怎么做,首先删除它的子节点的叶子节点,如果返回来时它自己成了叶子节点,则要删除它自己,所以很显然是后序遍历。
然后就是怎么删除自己的问题,要删除自己,就返回null,然后让自己的父节点接到自己时将其删除。

class Solution {
    public TreeNode removeLeafNodes(TreeNode root, int target) {
        if(root==null)return null;
        TreeNode left=removeLeafNodes(root.left,target);
        TreeNode right=removeLeafNodes(root.right,target);
        if(left==null)root.left=null;
        if(right==null)root.right=null;
        if(left==null && right==null && root.val==target)return null;
        return root;
    }
}

版权声明:本文为weixin_47040809原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>