auto commit
This commit is contained in:
34
docs/notes/36. 二叉搜索树与双向链表.md
Normal file
34
docs/notes/36. 二叉搜索树与双向链表.md
Normal file
@ -0,0 +1,34 @@
|
||||
# 36. 二叉搜索树与双向链表
|
||||
|
||||
[NowCoder](https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5?tpId=13&tqId=11179&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github)
|
||||
|
||||
## 题目描述
|
||||
|
||||
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
|
||||
|
||||
<img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/05a08f2e-9914-4a77-92ef-aebeaecf4f66.jpg" width="400"/>
|
||||
|
||||
## 解题思路
|
||||
|
||||
```java
|
||||
private TreeNode pre = null;
|
||||
private TreeNode head = null;
|
||||
|
||||
public TreeNode Convert(TreeNode root) {
|
||||
inOrder(root);
|
||||
return head;
|
||||
}
|
||||
|
||||
private void inOrder(TreeNode node) {
|
||||
if (node == null)
|
||||
return;
|
||||
inOrder(node.left);
|
||||
node.left = pre;
|
||||
if (pre != null)
|
||||
pre.right = node;
|
||||
pre = node;
|
||||
if (head == null)
|
||||
head = node;
|
||||
inOrder(node.right);
|
||||
}
|
||||
```
|
Reference in New Issue
Block a user