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

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

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;
    }
};
全部评论

相关推荐

object3:开始给部分🌸孝子上人生第一课了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务