【发布时间】:2020-11-19 16:02:43
【问题描述】:
我的解决方案中出现“没有.val”的问题... 我想知道如何调试它...
这里是描述
- 将二叉搜索树转换为有序双向链表
将 BST 原地转换为有序循环双向链表。将左右指针视为双向链表中前一个和下一个指针的同义词。]
我们以下面的 BST 为例,它可以帮助你更好地理解问题:我们想把这个 BST 转换成一个循环双向链表。双向链表中的每个节点都有一个前任和后继。对于循环双向链表,第一个元素的前身是最后一个元素,最后一个元素的后继是第一个元素。
下图显示了上面 BST 的循环双向链表。 “头”符号表示它指向的节点是链表的最小元素。
https://www.lintcode.com/problem/convert-binary-search-tree-to-sorted-doubly-linked-list/description
说明: 左:反向输出 右:正序输出
我的代码:
class Solution:
"""
@param root: root of a tree
@return: head node of a doubly linked list
"""
def treeToDoublyList(self, root):
# Write your code here.
if not root:
return None
prev = node(0)
self.treeToDoublyList(root.left)
if prev is None:
prev = root
else:
prev.left = root
root.right = prev
self.treeToDoublyList(root.right)
【问题讨论】:
标签: python linked-list tree