给你二叉树的根结点 root
,请你将它展开为一个单链表:
示例 1:
输入:root = [1,2,5,3,4,null,6] 输出:[1,null,2,null,3,null,4,null,5,null,6]
示例 2:
输入:root = [] 输出:[]
示例 3:
输入:root = [0] 输出:[0]
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
private:queue<TreeNode*> qu;
public:void flatten(TreeNode* root) {first(root);TreeNode* tmp=root;if(qu.empty()) return ;else qu.pop();while(!qu.empty()){TreeNode* x=qu.front();qu.pop();tmp->left=nullptr;tmp->right=x;tmp=tmp->right;}return ;}void first(TreeNode* root){if(root!=nullptr){qu.push(root);}else{return;}first(root->left);first(root->right);}
};