• BST转换成有序链表


    把二元查找树转变成排序的双向链表(树)
    题目:
    输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。
    要求不能创建任何新的结点,只调整指针的指向。

     1 struct BSTreeNode{
     2     int val;
     3     BSTreeNode* left;
     4     BSTreeNode* right;
     5     BSTreeNode(int x) : val(x),left(nullptr),right(nullptr){}
     6 };
     7 
     8 void helper(BSTreeNode* root,BSTreeNode*& head, BSTreeNode*& tail){
     9     if(!root) return;
    10     helper(root->left,head,tail);
    11     root->left = tail;
    12     if(tail){
    13         tail->right = root;
    14     }else{
    15         head = root;
    16     }
    17     tail = root;
    18     helper(root->right,head,tail);
    19 }
    20 
    21 BSTreeNode* ConvertBSTree2List(BSTreeNode* root){
    22     BSTreeNode* head = nullptr;//list head
    23     BSTreeNode* tail = nullptr;//list tail
    24     helper(root,head,tail);
    25     return head;
    26 }
    27 
    28 int main(){
    29     BSTreeNode* root = new BSTreeNode(10);
    30     root->left = new BSTreeNode(6);
    31     root->right = new BSTreeNode(14);
    32     root->left->right = new BSTreeNode(8);
    33     BSTreeNode* head;
    34     head = ConvertBSTree2List(root);
    35     return 0;
    36 }
  • 相关阅读:
    eclipse建立工作集管理项目
    echarts-x
    GeoJSON
    mysql 5.7 root password 过期
    kubernetes centos7
    JestClient
    树莓派镜像制作
    docker run elasticsearch
    vm.max_map_count
    远程访问jupyter notebook
  • 原文地址:https://www.cnblogs.com/wxquare/p/4946006.html
Copyright © 2020-2023  润新知