【刷题之路】二叉树前中后序遍历(递归)

原创 2016年05月31日 10:16:29

经典算法

class TreeToSequence {
public:
    vector<vector<int> > convert(TreeNode* root) {
        // write code here
        vector<int> front;
        vector<int> mid;
        vector<int> back;
        vector<vector<int> > res;
        fronttree(root,front);
        res.push_back(front);
        midtree(root,mid);
        res.push_back(mid);
        backtree(root,back);
        res.push_back(back);
        return res;
    }
    void fronttree(TreeNode* root,vector<int> &res){
        if(root==NULL) return;
        res.push_back(root->val);
        fronttree(root->left,res);
        fronttree(root->right,res);
    }
    void midtree(TreeNode* root,vector<int> &res){
        if(root==NULL) return;
        midtree(root->left,res);
        res.push_back(root->val);
        midtree(root->right,res);
    }
    void backtree(TreeNode* root,vector<int> &res){
        if(root==NULL) return;
        backtree(root->left,res);
        backtree(root->right,res);
        res.push_back(root->val);
    }
};

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

二叉树前、中、后序遍历【非递归】【LintCode测试平台】

定义节点 /** * Definition of TreeNode: * class TreeNode { * public: * int val; ...

二叉树前中后序遍历(递归)

中途对于递归总是理不清,后来看了代码和书才想通:递归==递+归:必须要有递归结束条件,可以不是返回值,若调用一个递归的主算法为第0层算法,则从主算法调用递归算法为进入第1层调用,从第i层递归调用本算法...

非递归二叉树前中后序遍历

以前经常说:系统栈爆了怎么办?手写啊!!然而并没有写过一次这次数据结构课介绍了非递归的二叉树遍历算法,后序还没讲,先写了再说先序遍历:1.我的直观想法是先把右子树压进去,再把左子树压进去2.然而书上给...

二叉树前、中、后序遍历(递归与非递归)

树节点结构体: struct TreeNode {     int val;     TreeNode *left;     TreeNode *right; }; 递归建立二叉树: TreeNo...

二叉树前序、中序、后序遍历的递归与非递归算法实现

//前序 递归 void preOrderRecursive(Tree * t) { if( !t ) return; visist(t); ...
  • kobep
  • kobep
  • 2013-04-24 10:50
  • 346

二叉树前中后序遍历的递归版本和非递归版本、队列实现的层次遍历

/* 数据结构分析与学习专栏 * Copyright (c) 2015, 山东大学 计算机科学与技术专业 学生 * All rights reserved. * 作 者: 高祥...

二叉树前序、中序、后序遍历(递归版、非递归版)

复习二叉树的遍历,自己实现了一遍代码,在这里进行下记录,递归和非递归都写出来了,感谢各位的批评指正。节点定义:package com.al;public class Node { public ...

【11】-java递归和非递归二叉树前序中序后序遍历

二叉树的遍历对于二叉树来讲最主要、最基本的运算是遍历。 遍历二叉树 是指以一定的次序访问二叉树中的每个结点。所谓 访问结点 是指对结点进行各种操作的简称。例如,查询结点数据域的内容,或输出它...

二叉树前序遍历、中序遍历、后序遍历的非递归实现

一般来讲,树的前序、中序、后序遍历都是递归实现的,不仅代码简洁而且便于理解。但是有些算法题(例如LeetCode 94,144,145题)却要求我们不能使用递归,那么怎么实现呢? ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)