面試26題:
題目:樹的子結構
題:輸入兩棵二叉樹a和b,判斷b是不是a的子結構。
解題思路:遞迴,注意空指標的情況。
解題**:
#-*- coding:utf-8 -*-
#class treenode:
#def __init__(self, x):
#self.val = x
#self.left = none
#self.right = none
class
solution:
defhassubtree(self, proot1, proot2):
#write code here
res=false
if proot1 and
proot2:
if proot1.val==proot2.val:
res=self.subtreecore(proot1,proot2)
ifnot
res:
res=self.hassubtree(proot1.left,proot2)
ifnot
res:
res=self.hassubtree(proot1.right,proot2)
return
res
defsubtreecore(self,proot1,proot2):
if proot2==none:
return
true
if proot1==none:
return
false
if proot1.val!=proot2.val:
return
false
return self.subtreecore(proot1.left,proot2.left) and self.subtreecore(proot1.right,proot2.right)
另外,如果樹節點的val值是double的時候,需要自定義乙個equal函式,當num1和num2相差小於1e-07時即可認為是相等的,詳見劍指offer p151
劍指offer面試題26
面試題26 複雜鍊錶的複製 題目 請實現函式complexlistnode clone complexlistnode phead 複製乙個複雜鍊錶。在複製鍊錶中,每個結點除了有乙個m pnext指標指向下乙個結點外,還有乙個m psibling指向鍊錶中任意結點或者null。結點的c 定義如下 s...
劍指offer 面試35題
面試35題 題目 複雜鍊錶的複製 題 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 解題思路一 python作弊法 解題 coding ...
劍指offer 面試33題
面試33題 題 二叉搜尋樹的後序遍歷序列 題目 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。解題思路 遞迴 解題 coding utf 8 class solution defverifysquenceof...