题解 | #二叉搜索树与双向链表#
二叉搜索树与双向链表
https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5
from re import L
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
#
# @param pRootOfTree TreeNode类
# @return TreeNode类
#
# 使用中序遍历,首先将所有节点保存在列表中,然后再将链表中的节点从前到后连接起来
class Solution:
def Convert(self , pRootOfTree ):
if not pRootOfTree:
return None
nodes = []
def midSequence(r):
l = []
if r.left:
l.extend(midSequence(r.left))
l.append(r)
if r.right:
l.extend(midSequence(r.right))
return l
nodes.extend(midSequence(pRootOfTree))
for i in range(len(nodes)-1):
nodes[i].right = nodes[i+1]
nodes[i+1].left = nodes[i]
return nodes[0]
查看1道真题和解析