114. Flatten Binary Tree to Linked List(Tree)
阿新 • • 發佈:2019-01-01
連結:https://leetcode.com/problems/flatten-binary-tree-to-linked-list/
題目:將二叉樹序列化為連結串列
思路:
先序遍歷,儲存一個全域性的newroot,對於當前節點root:
暫存左右子節點,然後將newroot->right = root;newroot->left = NULL;newroot = root;
程式碼:
class Solution { public: void pre(TreeNode *root){ if(!root) return; TreeNode *l = root->left; TreeNode *r = root->right; if(!newroot){ newroot = ret = root; } else { newroot->right = root; newroot->left = NULL; newroot = root; } pre(l); pre(r); } void flatten(TreeNode* root) { newroot = ret = NULL; pre(root); root = ret; } private: TreeNode *newroot; TreeNode *ret; };