题解 | #二叉搜索树与双向链表#

二叉搜索树与双向链表

https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */

/**
 * 
 * @param pRootOfTree TreeNode类 
 * @return TreeNode类
 */
void in_order(struct TreeNode *root, struct TreeNode** new_list) {
    if(!root) return;
    else {
        in_order(root->left, new_list);
        root->left = *new_list;
        if(*new_list) {
            (*new_list)->right = root;
        }
        (*new_list) = root;
        in_order(root->right, new_list);
    }
}

struct TreeNode* Convert(struct TreeNode* pRootOfTree ) {
    // write code here
    struct TreeNode *new_list = NULL;
    in_order(pRootOfTree, &new_list);
    while(new_list && new_list->left) {
        new_list = new_list->left;
    }
    return new_list;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务