题目考察的知识点

  • 二叉树
  • 链表
  • 先序遍历

题目解答方法的文字分析

  1. 构建虚拟头节点和指向当前节点的指针cur
  2. 先序遍历二叉树,创建节点temp,在将cur.right指向temp
  3. 递归遍历即可

本题解析所用的编程语言

  • cpp

完整且正确的编程代码

class Solution {
    TreeNode *head = new TreeNode(-1);
    TreeNode *cur = head;
  public:

    TreeNode* flattenTree(TreeNode* root) {
        if (root == nullptr) return root;

        TreeNode* temp = new TreeNode(root->val);
        cur->right = temp;
        cur = cur->right;
        flattenTree(root->left);
        flattenTree(root->right);
        return head->right;
    }
};
/*
构建虚拟头节点和指向当前节点的指针cur
 
先序遍历二叉树,创建节点temp,在将cur.right指向temp
 
递归遍历即可
*/

EOF