zoukankan      html  css  js  c++  java
  • LintCode-66.二叉树的前序遍历

    二叉树的前序遍历

    给出一棵二叉树,返回其节点值的前序遍历。

    样例

    给出一棵二叉树 {1,#,2,3},

    返回 [1,2,3].

    挑战

    你能使用非递归实现么?

    标签

    递归 二叉树 二叉树遍历 非递归

    code

    /**
     * Definition of TreeNode:
     * class TreeNode {
     * public:
     *     int val;
     *     TreeNode *left, *right;
     *     TreeNode(int val) {
     *         this->val = val;
     *         this->left = this->right = NULL;
     *     }
     * }
     */
    
    class Solution {
    public:
        /**
         * @param root: The root of binary tree.
         * @return: Preorder in vector which contains node values.
         */
        vector<int> preorderTraversal(TreeNode *root) {
            // write your code here
            vector<int> order;
            if(root == NULL)
                return order;
    
            stack<TreeNode*> s;
            TreeNode *p=root;
            while(p!=NULL||!s.empty()) {
                while(p!=NULL) {
                    order.push_back(p->val);
                    s.push(p);
                    p=p->left;
                }
                if(!s.empty()) {
                    p=s.top();
                    s.pop();
                    p=p->right;
                }
            }
            return order;
        }
    };
  • 相关阅读:
    跨浏览器的事件对象(EventUtil)
    原型 Object.create
    DC大牛的function扩展
    事件代理 proxy
    错误处理程序
    JQuery 插件
    关于ClownFish的问题
    C#拾遗
    Jquery技巧
    防盗链
  • 原文地址:https://www.cnblogs.com/libaoquan/p/6807885.html
Copyright © 2011-2022 走看看