js 递归删除tree的空节点
时间: 2024-10-16 11:09:44 浏览: 27
在JavaScript中,递归是一种常用的遍历树结构并删除空节点的方法,因为树通常有分支层次结构,所以递归非常适合处理这种问题。下面是一个简单的示例,它定义了一个`removeEmptyNodes`函数,用于删除给定二叉树中的所有空节点:
```javascript
// 定义一个简单的二叉树节点结构
function TreeNode(val, left = null, right = null) {
this.val = val;
this.left = left;
this.right = right;
}
// 递归删除空节点的函数
function removeEmptyNodes(root) {
// 如果根节点为空,直接返回null
if (!root) return null;
// 分别递归处理左右子树
root.left = removeEmptyNodes(root.left);
root.right = removeEmptyNodes(root.right);
// 如果当前节点没有子节点,返回null以删除它
return root.left && root.right ? root : null;
}
```
你可以像这样使用这个函数:
```javascript
let tree = new TreeNode(1, new TreeNode(2), new TreeNode(3, null, new TreeNode(4)));
console.log(removeEmptyNodes(tree)); // 删除空节点后的树
```
阅读全文