劍指Offer39 二叉搜尋樹與雙向鍊錶

2021-09-05 10:37:00 字數 1011 閱讀 6177

思路:

這個人家大佬的思路,還沒學習懂,不知道思路是什麼嗚嗚嗚嗚,遞迴是個很難搞懂的東東

#-*- coding:utf-8 -*-

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution:

def convert(self, prootoftree):

if not prootoftree:

return prootoftree

if not prootoftree.left and not prootoftree.right:

return prootoftree

# 處理左子樹

self.convert(prootoftree.left)

left=prootoftree.left

# 連線根與左子樹最大結點

if left:

while(left.right):

left=left.right

prootoftree.left,left.right=left,prootoftree

# 處理右子樹

self.convert(prootoftree.right)

right=prootoftree.right

# 連線根與右子樹最小結點

if right:

while(right.left):

right=right.left

prootoftree.right,right.left=right,prootoftree

while(prootoftree.left):

prootoftree=prootoftree.left

return prootoftree

劍指offer 39 平衡二叉樹

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。首先,什麼是平衡二叉樹?如果二叉樹中任意結點的左右子樹深度相差不超過1,那麼它就是平衡二叉樹。最直接的做法,遍歷每個結點,借助乙個獲取樹深度的遞迴函式,根據該結點的左右子樹高度差判斷是否平衡,然後遞迴地對左右子樹進行判斷。public class sol...

劍指offer39 平衡二叉樹

題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。首先要搞清楚什麼是平衡二叉樹 它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。很直觀用遞迴來解決 coding utf 8 class treenode def init self,x self.va...

劍指offer 39 平衡二叉樹

1.題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。2.解題思路 預備知識 平衡二叉樹是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。思想 從根節點開始,先判斷左右子樹的高度差是否超過1,然後接著判斷左右子樹是否是平衡二叉樹。這邊用到了遞迴思想。如...