最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Leetcode Day17 3

2022-04-22 17:51 作者:我喜歡喝一點點  | 我要投稿

劍指 Offer 36. 二叉搜索樹與雙向鏈表

輸入一棵二叉搜索樹,將該二叉搜索樹轉(zhuǎn)換成一個排序的循環(huán)雙向鏈表。要求不能創(chuàng)建任何新的節(jié)點,只能調(diào)整樹中節(jié)點指針的指向。


?


為了讓您更好地理解問題,以下面的二叉搜索樹為例:

我們希望將這個二叉搜索樹轉(zhuǎn)化為雙向循環(huán)鏈表。鏈表中的每個節(jié)點都有一個前驅(qū)和后繼指針。對于雙向循環(huán)鏈表,第一個節(jié)點的前驅(qū)是最后一個節(jié)點,最后一個節(jié)點的后繼是第一個節(jié)點。


下圖展示了上面的二叉搜索樹轉(zhuǎn)化成的鏈表。“head” 表示指向鏈表中有最小元素的節(jié)點。

特別地,我們希望可以就地完成轉(zhuǎn)換操作。當(dāng)轉(zhuǎn)化完成以后,樹中節(jié)點的左指針需要指向前驅(qū),樹中節(jié)點的右指針需要指向后繼。還需要返回鏈表中的第一個節(jié)點的指針。

?

嗯這道題就是dfs的變型,一開始沒想到,我太菜了

"""

#?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':

????????if?not?root:return

????????self.head=None

????????self.pre=None


????????def?dfs(cur):

????????????if?cur==None:return

????????????dfs(cur.left)

????????????if?self.pre==None:

????????????????self.head=cur

????????????else:

????????????????self.pre.right=cur

????????????cur.left=self.pre

????????????self.pre=cur

????????????dfs(cur.right)

????????dfs(root)

????????self.head.left=self.pre

????????self.pre.right=self.head

????????return?self.head


Leetcode Day17 3的評論 (共 條)

分享到微博請遵守國家法律
交城县| 社会| 万荣县| 高安市| 大渡口区| 吴川市| 多伦县| 北流市| 安义县| 平利县| 武陟县| 江陵县| 克东县| 商洛市| 龙胜| 毕节市| 南京市| 浦东新区| 昌都县| 宜城市| 密山市| 秦安县| 五原县| 通化县| 伊川县| 陆川县| 青田县| 碌曲县| 宜都市| 广饶县| 霍城县| 阿鲁科尔沁旗| 辰溪县| 东兰县| 龙州县| 舒兰市| 德清县| 南充市| 洪雅县| 正阳县| 普陀区|