1325. 删除给定值的叶子节点
给你一棵以 root 为根的二叉树和一个整数 target ,请你删除所有值为 target 的 叶子节点 。
注意,一旦删除值为 target 的叶子节点,它的父节点就可能变成叶子节点;如果新叶子节点的值恰好也是 target ,那么这个节点也应该被删除。
也就是说,你需要重复此过程直到不能继续删除。
链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
var removeLeafNodes = function(root, target) { if (root === null) return null if (root.left) { root.left.parent = root } if (root.right) { root.right.parent = root }
removeLeafNodes(root.left, target) removeLeafNodes(root.right, target) if (root.left === null && root.right === null && root.val === target) { if (root.parent) { if (root.parent.left === root) root.parent.left = null else root.parent.right = null } else { root = null } }
return root };
|