美文网首页
二叉树专题

二叉树专题

作者: 风之羁绊 | 来源:发表于2019-07-25 16:10 被阅读0次

二叉树3大遍历:先序,中序,后序
非递归版本:https://www.jianshu.com/p/373a002c401b

先序:
class Solution {
public:
    vector<int> ans;
    std::stack<TreeNode *> s;
    vector<int> preorderTraversal(TreeNode * root) {
        // write your code here
        auto cur=root;
        while(cur||s.size())
        {
            while(cur)
            {
                ans.push_back(cur->val);
                s.push(cur);
                cur=cur->left;
            }
            cur=s.top();
            s.pop();
            cur=cur->right;
        }
        return ans;
    }
};
中序
class Solution {
public:
    /**
     * @param root: A Tree
     * @return: Inorder in ArrayList which contains node values.
     */
    vector<int> ans;
    stack<TreeNode *> s;
    vector<int> inorderTraversal(TreeNode * root) {
        // write your code here
        auto cur=root;
        while(cur||s.size())
        {
            while(cur)
            {
                s.push(cur);
                cur=cur->left;
            }
            cur=s.top();
            s.pop();
            ans.push_back(cur->val);
            cur=cur->right;
        }
        return ans;
    }
};
后序遍历
class Solution {
public:
    /**
     * @param root: A Tree
     * @return: Postorder in ArrayList which contains node values.
     */
    vector<int> ans;
    std::stack<TreeNode *> s;
    vector<int> postorderTraversal(TreeNode * root) {
        // write your code here
        auto cur=root;
        TreeNode * last=NULL;
        while(cur||s.size())
        {
            while(cur)
            {
                s.push(cur);
                cur=cur->left;
            }
            cur=s.top();
            if(cur->right==NULL||cur->right==last)
            {
                ans.push_back(cur->val);
                s.pop();
                last=cur;
                cur=NULL;
            }
            else
                cur=cur->right;
        }
        return ans;
    }
};
  1. 二叉树的最近公共祖先

相关文章

  • 剑指offer小结第二波

    二叉树专题系列 1. 镜像类 题目描述: 操作给定的二叉树,将其变换为源二叉树的镜像。 Ying的解法: 二叉树的...

  • 05-30:二叉树专题

    二叉树专题常见题型 1、二叉树的遍历 前、中、后:递归 层序、之字:bfs 2、二叉树的深度 (1)二叉树的深度 ...

  • 06-20:刷题综合二:二叉树

    二叉树专题 0、二叉树的最大路径和 核心思路: (1)首先,考虑实现一个简化的函数 maxGain(node),该...

  • Longest Common Ancetor

    二叉树公共父节点专题 BST,二叉搜索树的公共父节点 https://leetcode.com/problems/...

  • 二叉树还原

    二叉树是什么?什么是先序遍历,等等这些问题回头开个专题文章讲述,今天主要弄得是二叉树还原。 假设我们手头有一个一个...

  • 二叉树专题

    二叉树3大遍历:先序,中序,后序非递归版本:https://www.jianshu.com/p/373a002c4...

  • LeetCode 栈、队列、优先队列专题 2:二叉树的三种非递归

    LeetCode 栈、队列、优先队列专题 2:二叉树的三种非递归实现 对于递归而言,简单来说就是自己调用自己,但是...

  • 数据结构与算法-二叉树02

    二叉树的定义 二叉树的特点 二叉树的五中基本形态 其他二叉树 斜二叉树 满二叉树 完全二叉树图片.png满二叉树一...

  • 剑指offer最优解Java版-序列化二叉树

    剑指offer专题地址 剑指offer索引地址 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树。 解决方...

  • 二叉树

    二叉树 高度 深度真二叉树 满二叉树 完全二叉树 二叉树遍历前序 中序 后序层序遍历 翻转二叉树 递归法...

网友评论

      本文标题:二叉树专题

      本文链接:https://www.haomeiwen.com/subject/nzyqrctx.html