Loading...

递归-二叉搜索树与双向链表

在这里插入图片描述 在这里插入图片描述

求解代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
public TreeNode head = null;//双向链表的头节点
public TreeNode cur = null;//双向链表的尾节点游标

public TreeNode Convert(TreeNode pRootOfTree) {
if(pRootOfTree==null){
return null;
}

Convert(pRootOfTree.left);

if(cur == null){
head = pRootOfTree;
cur = pRootOfTree;
}else{
cur.right = pRootOfTree;
pRootOfTree.left = cur;
cur = pRootOfTree;
}

Convert(pRootOfTree.right);
return head;
}

说明:

核心就在于其中的if/else语句。

1
2
if(cur为空) → 初始化链表,头和尾都是第一个节点;
else → 把当前节点拼到链表尾部,完成双向绑定,然后移动尾指针。
最后更新于 2026-04-05 17:35:33
Code Road Record