114. 二叉树展开为链表
程序员文章站
2024-03-26 14:12:35
...
/**
* 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) {
while(root){
if(!root->left) //左子树为 null,直接考虑下一个节点
root=root->right;
else{
TreeNode *t=root->left; // 找左子树最右边的节点
while(t->right)
t=t->right;
t->right=root->right; //将原来的右子树接到左子树的最右边节点
root->right=root->left; // 将左子树插入到右子树的地方
root->left=NULL;
root=root->right; // 考虑下一个节点
}
}
}
};
上一篇: (十一)延迟加载
下一篇: 114. 二叉树展开为链表