劍指offer 面試33題

2022-04-22 22:56:46 字數 842 閱讀 7256

面試33題:

題:二叉搜尋樹的後序遍歷序列

題目:輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。

解題思路:遞迴

解題**:

#

-*- coding:utf-8 -*-

class

solution:

defverifysquenceofbst(self, sequence):

#write code here

ifnot sequence or len(sequence)<=0:

return

false

root=sequence[-1]

i=0#找出左小右大的分界點i,此時i屬於右子樹

for node in sequence[:-1]:

if node >root:

break

i+=1

#如果在右子樹中有比根節點小的值,直接返回false

for node in sequence[i:-1]:

if node return

false

#判斷左子樹是否為二叉搜尋樹

left=true

if i>0:

left=self.verifysquenceofbst(sequence[:i])

#判斷右子樹是否為二叉搜尋樹

right=true

if i:

right=self.verifysquenceofbst(sequence[i:-1])

return left and right

劍指offer 面試35題

面試35題 題目 複雜鍊錶的複製 題 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 解題思路一 python作弊法 解題 coding ...

劍指offer 面試31題

面試31題 題目 棧的壓入 彈出元素 題 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出...

劍指offer 面試27題

面試27題 題目 二叉樹的映象 題 操作給定的二叉樹,將其變換為源二叉樹的映象。二叉樹的映象定義 源二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 5解題 coding utf 8 class treenode def init self,x self.val x s...