python中思维的遍历如何实现
时间: 2024-02-21 07:59:24 浏览: 72
Python基础知识思维导图.pdf
5星 · 资源好评率100%
在Python中,可以使用递归或循环来实现思维的遍历。
递归:
递归是一种函数调用自身的方法,用于解决重复的问题。在思维的遍历中,递归的方法是,对于当前节点,先处理当前节点的值,然后递归遍历左子树和右子树。
下面是一个简单的二叉树遍历的递归实现示例:
```
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def traverse(node):
if node is None:
return
traverse(node.left)
print(node.val)
traverse(node.right)
# 创建一个二叉树
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
# 遍历二叉树
traverse(root)
```
循环:
循环的方法是使用一个栈来存储未处理的节点,先将根节点入栈,然后循环执行以下操作:从栈中取出一个节点,处理该节点的值,并将其右子树和左子树依次入栈,直到栈为空。
下面是一个二叉树遍历的循环实现示例:
```
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def traverse(node):
stack = []
stack.append(node)
while stack:
node = stack.pop()
print(node.val)
if node.right:
stack.append(node.right)
if node.left:
stack.append(node.left)
# 创建一个二叉树
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
# 遍历二叉树
traverse(root)
```
阅读全文