二叉树的遍历

来源:互联网 发布:算法是一个什么的集合 编辑:程序博客网 时间:2024/06/07 11:19

二叉树的前序遍历

二叉树的前序遍历,先根节点,然后左子树,最后右子树。

 vector<int> v;
    vector<int> preorderTraversal(TreeNode * root) {
        // write your code here
       
        if(root!=NULL) 
        {
         v.push_back(root->val);
         preorderTraversal(root->left);
         preorderTraversal(root->right);
        }    
        return v;

前面几遍没过,vector<int> v;这一句位置放错了,导致每次结果都是wa;

二叉树的中序遍历

中序遍历,先左子树,再根节点,最后右子树。直接用前序遍历的程序改写:

inorderTraversal(root->left);
        v.push_back(root->val);
        inorderTraversal(root->right);

上面三句改变位置,其他不变。

二叉树的后序遍历

同中序遍历,改变语句位置。postorderTraversal(root->left);
         
         postorderTraversal(root->right);v.push_back(root->val);
        }    
        return v;


原创粉丝点击