zoukankan      html  css  js  c++  java
  • !!!树的中序,前序线索化遍历

    =====

    笔记另写:

    ======

    code:

    class A{
    public:
    ///inorderMorrisTraversal
        void inorderMorrisTraversal(TreeNode *root){
            TreeNode *curr = root;
            TreeNode *prev = nullptr;
            while(curr!=nullptr){
                if(curr->left == nullptr){
                    cout<<curr->val<<" ";
                    curr = curr->right;
                }else{
                    ///search predecessor
                    prev = curr->left;
                    while(prev->right !=nullptr && prev->right!=curr){
                        prev = prev->right;
                    }
                    if(prev->right==nullptr){
                        prev->right = curr;
                        curr = curr->left;
                    }else{
                        prev->right = nullptr;///recover the tree
                        cout<<curr->val<<" ";
                        curr = curr->right;
                    }
                }///if-else
            }///while
        }
    };

    === 前序线索化

    ///
        void preMorris(TreeNode* root){
            TreeNode *curr = root;
            TreeNode *prev = nullptr;
            while(curr!=nullptr){
                if(curr->left==nullptr){
                    cout<<curr->val<<" ";
                    curr = curr->right;
                }else{
                    prev = curr->left;
                    while(prev->right!=nullptr && prev->right!=curr){
                        prev = prev->right;
                    }
                    if(prev->right==nullptr){
                        prev->right = curr;
                        cout<<curr->val<<" ";
                        curr = curr->left;
                    }else{
                        prev->right = curr;
                        curr = curr->right;
                    }
                }
            }///while
        }
  • 相关阅读:
    Palindrome Partitioning
    Minimum Path Sum
    Maximum Depth of Binary Tree
    Minimum Depth of Binary Tree
    Unique Binary Search Trees II
    Unique Binary Search Trees
    Merge Intervals
    Merge Sorted Array
    Unique Paths II
    C++ Primer Plus 笔记第九章
  • 原文地址:https://www.cnblogs.com/li-daphne/p/5618583.html
Copyright © 2011-2022 走看看