📅  最后修改于: 2023-12-03 15:40:32.408000             🧑  作者: Mango
本文章将介绍如何检查一个二叉树的每个节点是否在其自身或其任何直接邻居上都有一个值 K。本文章将提供一个 Python 代码示例和相应的 Markdown 代码片段。
该问题可以使用深度优先搜索算法(DFS)来解决,具体步骤如下:
迭代处理每个节点:
检查当前节点是否等于 K,如果是,则返回 True。
检查当前节点的左子节点是否等于 K,如果是,则返回 True。
检查当前节点的右子节点是否等于 K,如果是,则返回 True。
如果上述步骤均未返回 True,则返回 False。
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def contains_k(root: TreeNode, k: int) -> bool:
if root is None:
return False
if root.val == k:
return True
if contains_k(root.left, k):
return True
if contains_k(root.right, k):
return True
return False
## 算法思想
该问题可以使用深度优先搜索算法(DFS)来解决,具体步骤如下:
1. 迭代处理每个节点:
2. 检查当前节点是否等于 K,如果是,则返回 True。
3. 检查当前节点的左子节点是否等于 K,如果是,则返回 True。
4. 检查当前节点的右子节点是否等于 K,如果是,则返回 True。
5. 如果上述步骤均未返回 True,则返回 False。
这篇文章介绍了如何检查一个二叉树的每个节点是否在其自身或其任何直接邻居上都有一个值 K。我们提供了一个 Python 代码示例和相应的 Markdown 代码片段。