"""
# 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(root):
if not root:
return None, None
lleft,lright=dfs(root.left)
rleft,rright=dfs(root.right)
root.left,root.right=lright,rleft
if lright: lright.right=root
if rleft: rleft.left=root
return lleft if lleft else root,rright if rright else root
if not root:return None
a,b=dfs(root)
if a and b:
a.left=b
b.right=a
return a
剑指 Offer 36. 二叉搜索树与双向链表
最新推荐文章于 2022-07-07 16:17:05 发布