备战春招——12.05算法

树、二叉树

本次主要是对树、二叉树的前中后和递归与非递归遍历以及通过这种结构完成一些操作实现。

二叉树

中序遍历

备战春招——12.05算法_第1张图片

中序遍历就是中间打印出结果嘛,如下列递归实现的,中间取结果.

/** 递归实现
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    vector<int> data;
    void test(TreeNode* node){
        if(node==nullptr) return;
        if(node->left!=nullptr){
            test(node->left);
        }
        data.push_back(node->val);
        if(node->right!=nullptr){
            test(node->right);
        }
    }
    vector<int> inorderTraversal(TreeNode* root) {
        test(root);
        return data;
    }
};

今天事情多,就刷了一道,emm…

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