题解 | #实现二叉树先序,中序和后序遍历#

实现二叉树先序,中序和后序遍历

http://www.nowcoder.com/practice/a9fec6c46a684ad5a3abd4e365a9d362

看到二叉树的第一反应肯定是栈和回溯,回溯即递归,代码简单,应用场景自我感觉偏小。但是无奈人家好用啊。

/**
 * struct TreeNode {
 *    int val;
 *    struct TreeNode *left;
 *    struct TreeNode *right;
 * };
 */
vector<int> pre;
vector<int> mid;
vector<int> nxt;

//回溯
void backTrace(TreeNode* node)
{
    if(nullptr == node)
        return;
    pre.push_back(node->val);//前 
    backTrace(node->left);
    mid.push_back(node->val);//中
    backTrace(node->right);
    nxt.push_back(node->val);//后 
} 

class Solution {
public:
    /**
     * 
     * @param root TreeNode类 the root of binary tree
     * @return int整型vector<vector<>>
     */
    vector<vector<int> > threeOrders(TreeNode* root) {
        // write code here
        vector<vector<int> > ans; 
        backTrace(root);
        ans.push_back(pre);
        ans.push_back(mid);
        ans.push_back(nxt);
        return ans;
    }
};
全部评论

相关推荐

机械打工仔:有说的你怀疑一下就行了,直接问也太实诚了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-16 14:00
机械打工仔:来挂自己了,经典巨婴从校园投入职场
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务