📌  相关文章
📜  traverse (1)

📅  最后修改于: 2023-12-03 15:05:37.698000             🧑  作者: Mango

Traverse介绍

Traverse是编程中常用的一个术语,意为遍历。它可以应用于不同的数据结构中,包括树、图、列表等等。在遍历过程中,我们可以对数据结构中的每个元素进行操作或者搜索。

遍历的基本方式

遍历通常采用递归或者循环的方式来实现,根据不同的要求可以实现前序遍历、中序遍历、后序遍历等等。

以二叉树为例,前序遍历、中序遍历和后序遍历的遍历顺序如下:

  • 前序遍历:根节点 -> 左子树 -> 右子树
  • 中序遍历:左子树 -> 根节点 -> 右子树
  • 后序遍历:左子树 -> 右子树 -> 根节点
遍历的实现
二叉树的遍历

以下是一段二叉树前序遍历的Python代码实现:

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right


def preorderTraversal(root: TreeNode) -> List[int]:
    res = []
    if root:
        res.append(root.val)
        res += preorderTraversal(root.left)
        res += preorderTraversal(root.right)
    return res
链表的遍历

以下是一段链表遍历的C++代码实现:

struct ListNode {
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};

vector<int> traverseList(ListNode* head) {
    vector<int> res;
    while (head != nullptr) {
        res.push_back(head->val);
        head = head->next;
    }
    return res;
}
总结

Traverse是编程中常用的一个术语,在遍历不同的数据结构时,我们可以采用递归或者循环来实现前序遍历、中序遍历、后序遍历等。在实现过程中,要根据不同的数据结构选择合适的实现方式。