代码随想录算法训练营Day14|二叉树

今天学了二叉树方面的知识,常见的有满二叉树、完全二叉树、二叉搜索树和平衡二叉搜索树的定义,以及二叉树的两种存储方式(数组法和链表法),重点是遍历方法,包括深度和广度优先遍历,其中深度遍历中的前、中、后序遍历做了重点讲解。

二叉树的前、中、后序遍历代码如下

class Solution {
public:
    void traversal(TreeNode* cur, vector& vec) {
        if (cur == NULL) return;
        vec.push_back(cur->val);    // 中
        traversal(cur->left, vec);  // 左
        traversal(cur->right, vec); // 右
    }
    vector preorderTraversal(TreeNode* root) {
        vector result;
        traversal(root, result);
        return result;
    }
};
void traversal(TreeNode* cur, vector& vec) {
    if (cur == NULL) return;
    traversal(cur->left, vec);  // 左
    vec.push_back(cur->val);    // 中
    traversal(cur->right, vec); // 右
}

void traversal(TreeNode* cur, vector& vec) {
    if (cur == NULL) return;
    traversal(cur->left, vec);  // 左
    traversal(cur->right, vec); // 右
    vec.push_back(cur->val);    // 中
}

你可能感兴趣的:(算法)