[剑指Offer-36][中等] 二叉搜索树与双向链表
最后更新于
最后更新于
"""
# Definition for a Node.
class Node:
def __init__(self, val, left=None, right=None):
self.val = val
self.left = left
self.right = right
"""
class Solution:
def treeToDoublyList(self, root: 'Node') -> 'Node':
def dfs(node):
if not node:
return
dfs(node.left)
if self.pre is None:
self.head = node
else:
self.pre.right = node
node.left = self.pre
self.pre = node
dfs(node.right)
self.head, self.pre = None, None
dfs(root)
if self.head is not None:
self.head.left = self.pre
self.pre.right = self.head
return self.head