【LeetCode】68. Flatten Binary Tree to Linked List
阿新 • • 發佈:2018-12-10
題目描述(Medium)
Given a binary tree, flatten it to a linked list in-place.
題目連結
Example 1:
For example, given the following tree:
1 / \ 2 5 / \ \ 3 4 6
The flattened tree should look like:
1 \ 2 \ 3 \ 4 \ 5
演算法分析
中序遍歷棧方法。
提交程式碼:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: void flatten(TreeNode* root) { if (!root) return; stack<TreeNode*> s; s.push(root); while(!s.empty()) { TreeNode* node = s.top(); s.pop(); if (node->right) s.push(node->right); if (node->left) s.push(node->left); node->left = NULL; if(!s.empty()) node->right = s.top(); } } };