代码有问题,万一目标节点在父级呢?上诉代码就没覆盖到
时间: 2024-11-12 10:46:20 浏览: 4
VB编程源代码 96在treeview的节点处使用图形
确实,上述代码只关注了子节点,并未考虑到目标节点可能是当前节点的情况。如果你需要确保包括父节点在内的所有祖先节点都被搜索,可以在原算法的基础上稍作修改。这里是一个更新后的版本,增加了对父节点的检查:
```java
public TreeNode searchInTree(TreeNode root, int targetId) {
if (root != null && root.id == targetId) {
return root;
} else {
TreeNode result = searchInTree(root.left, targetId); // 首先搜索左子树
if (result != null) {
return result;
}
// 然后再搜索右子树,防止漏掉父节点
return searchInTree(root.right, targetId);
}
}
```
现在,无论目标ID的节点是在当前节点、左子节点还是右子节点,甚至父节点,这个函数都能完整地搜索整个树。
阅读全文