```go
//将二叉树转换成有序双向链表
func _ToSortLinkedList(cur *BinaryNode) {
var tmp = cur.Parant
if cur.Right != nil {
_ToSortLinkedList(cur.Right)
} else {
if tmp.Parant.Right == tmp && tmp.Parant != nil {
if tmp.Left == cur && tmp.Left != nil {
tmp.Parant.Right = cur
cur.Left = tmp.Parant //执行到这里的时候,对tmp.Parent 的影响影响到了递归外。
cur.Right = tmp
}
}
}
if cur.Left != nil {
_ToSortLinkedList(cur.Left)
} else {
if tmp.Parant.Left == tmp && tmp.Parant != nil {
if tmp.Right == cur && tmp.Right != nil {
tmp.Parant.Left = cur
cur.Right = tmp.Parant
cur.Left=tmp
}
}
}
}
```
有疑问加站长微信联系(非本文作者)