力扣-面试题17.12题 BiNode(C++)- dfs

力扣-面试题17.12题 BiNode(C++)- dfs,第1张

题目链接:https://leetcode-cn.com/problems/binode-lcci/
题目如下:

/**
 * 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:
    TreeNode* convertBiNode(TreeNode* root) {
        //二叉搜索树的中序遍历是有序的

        dfs(root);

        return dummy->right;
    }
    void dfs(TreeNode* root){
        if(!root) return;
        
        TreeNode* left=root->left;
        TreeNode* right=root->right;

        dfs(left);

        tail->right=root;
        tail=root;
        root->left=nullptr;

        dfs(right);
    }
private:
    TreeNode* dummy=new TreeNode(-1);
    TreeNode* tail=dummy;//尾插节点
};

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/578066.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存