leetcode - 剑指 Offer 36. 二叉搜索树与双向链表
题目
代码
#include
#include
using namespace std;
typedef struct Node{
int val;
struct Node *left, *right;
}Node, *ListNode;
Node *pre, *head;
void dfs(Node *cur){
if(!cur){
return NULL;
}
dfs(cur->left);
if(pre){
pre->right = cur;
}else{
head = cur;
}
cur->left = pre;
pre = cur;
dfs(cur->right);
}
Node* treeToDoublyList(Node* root) {
if(!root){
return NULL;
}
dfs(root);
head->left = pre;
pre->right = head;
return head;
}
int main(){
Node *root, res;
res = treeToDoublyList(root);
return 0;
}