二叉树中序遍历代码详细解释
时间: 2023-11-14 19:23:05 浏览: 102
二叉树中序遍历
二叉树的中序遍历是一种常见的遍历方式,它的遍历顺序是先遍历左子树,再遍历根节点,最后遍历右子树。下面是二叉树中序遍历的代码实现,以及对其中每一步的详细解释。
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def inorderTraversal(root):
res = []
inorder(root, res)
return res
def inorder(root, res):
if root:
inorder(root.left, res)
res.append(root.val)
inorder(root.right, res)
```
首先,我们定义了一个 `TreeNode` 类,用来表示二叉树的每个节点。每个节点包含一个值 `val`,以及左右子树的引用 `left` 和 `right`。
接下来,我们定义了一个 `inorderTraversal` 函数,用来对二叉树进行中序遍历。这个函数接受一个参数 `root`,表示二叉树的根节点。函数内部首先创建一个空列表 `res`,用来存储遍历结果。然后调用 `inorder` 函数进行遍历,并将遍历结果返回。
最后,我们定义了一个 `inorder` 函数,用来实现中序遍历的递归过程。这个函数接受两个参数,一个是当前节点 `root`,另一个是遍历结果列表 `res`。函数内部首先判断当前节点是否存在,如果存在就递归遍历左子树,然后将当前节点的值添加到遍历结果列表中,最后递归遍历右子树。
总的来说,二叉树中序遍历的递归过程就是先遍历左子树,再将根节点添加到遍历结果列表中,最后遍历右子树。通过递归的方式不断地遍历子树,最终就可以得到整个二叉树的中序遍历结果。
阅读全文