114. Flatten Binary Tree to Linked List

先序遍歷,用一個stack 來存儲節點。然後用一個dummyHead 來存儲頭結點。

class Solution {

public:

    void flatten(TreeNode* root) {

         if(root == NULL) return;

         TreeNode* dummyHead = new TreeNode(0);

         auto k = dummyHead;

         stack<TreeNode*> s;

         s.push(root);

         while(!s.empty()){

            auto cur = s.top();

            s.pop();

            if(cur->right != NULL) s.push(cur->right);

            if(cur->left != NULL) s.push(cur->left);

            k->right = cur;

            k = k->right;

            k->left = NULL;            

         }

         root = dummyHead->right;

    }

};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章