class Solution(object):
def bst_llst(self, root):
def dfs(root):
"""
:param root: Node
:ret: (min, max)
9
6 14
3 8| 12
/
7
"""
if not root:
return
lmin = lmax = rmin = rmax = None
if root.left:
lmin, lmax = dfs(root.left)
lmax.right = root
root.left = lmax
if root.right:
rmin, rmax = dfs(root.right)
root.right = rmin
rmin.left = root
if not lmin:
lmin = root
if not rmax:
rmax = root
return lmin, rmax
mmin, mmax = dfs(root)
mmin.left = mmax
mmax.right = mmin
return mmin
Apr 19, 2018
[LC] bst to double linked list
bst <-> double linked list.
straight.
Labels:
leetcode
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.