Leetcode—426. 将二叉搜索树转化为排序的双向链表【中等】Plus

avatar
作者
筋斗云
阅读量:0

2024每日刷题(148)

Leetcode—426. 将二叉搜索树转化为排序的双向链表

在这里插入图片描述

实现代码

/* // Definition for a Node. class Node { public:     int val;     Node* left;     Node* right;      Node() {}      Node(int _val) {         val = _val;         left = NULL;         right = NULL;     }      Node(int _val, Node* _left, Node* _right) {         val = _val;         left = _left;         right = _right;     } }; */  class Solution { public:     Node* treeToDoublyList(Node* root) {         if(root == nullptr) {             return (Node*)nullptr;         }          // 中序遍历         stack<Node*> st;         Node* first = nullptr;         Node* pre = nullptr;          while(root != nullptr || !st.empty()) {             // 左子树全部入栈             while(root != nullptr) {                 st.push(root);                 root = root->left;             }              root = st.top(), st.pop();             if(first == nullptr) {                 first = root;             }              if(pre != nullptr) {                 pre->right = root;                 root->left = pre;             }              pre = root;             root = root->right;         }          first->left = pre;         pre->right = first;         return first;     } }; 

运行结果

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!