实现深度优先搜索python
时间: 2024-01-01 09:22:40 浏览: 84
以下是一个实现深度优先搜索的Python代码示例:
```python
# 定义二叉树节点类
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
# 深度优先搜索
class Solution:
def maxDepth(self, root):
if root is None:
return 0
else:
left_height = self.maxDepth(root.left)
right_height = self.maxDepth(root.right)
return max(left_height, right_height) + 1
```
在上述代码中,我们首先定义了一个二叉树节点类`TreeNode`,其中包含节点的值`val`、左子节点`left`和右子节点`right`。
然后,我们定义了一个`Solution`类,其中包含一个`maxDepth`方法,用于计算给定二叉树的最大深度。在`maxDepth`方法中,我们使用递归的方式进行深度优先搜索。如果当前节点为空,表示已经到达叶子节点的下一层,返回0。否则,分别计算左子树和右子树的最大深度,并取两者中的较大值,然后加上当前节点的深度1,即为当前子树的最大深度。
请注意,以上代码仅为深度优先搜索的实现示例,具体应用场景和使用方式可能会有所不同。
阅读全文