讨论/《图解算法数据结构》 - 剑指 Offer 36. 二叉搜索树与双向链表/
《图解算法数据结构》 - 剑指 Offer 36. 二叉搜索树与双向链表

Python 用列表辅助:

# 中序遍历将节点放入列表
# 遍历列表调整各节点指针指向
class Solution:
    def treeToDoublyList(self, root: 'Node') -> 'Node':
        node_list = []
        def recur(cur):
            if not cur: return
            recur(cur.left)
            node_list.append(cur)
            recur(cur.right)
        if not root: return None
        recur(root)
        num = len(node_list)
        for i in range(num):
            node_list[i].left = node_list[i-1]
            node_list[i].right = node_list[(i+1)%num]
        return node_list[0]
1
展开全部 15 讨论