樹的子結構
題目描述
輸入兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)
思想:利用遞迴,先判斷b樹的根節點與a樹的根節點或左右結點是否相匹配,再構造乙個判斷兩樹結點是否匹配的方法,遞迴呼叫,注意空指標的問題。
/**
public class treenode }*/
public class solution
}public boolean issubtree(treenode root1,treenode root2)
}
二叉樹的映象
題目描述
操作給定的二叉樹,將其變換為源二叉樹的映象。
輸入描述:
二叉樹的映象定義:源二叉樹8/
6 10
/ \ /
5 7 9 11
映象二叉樹8/
10 6
/ \ /
11 9 7 5
思想:也是利用遞迴。不斷變換樹結點的左右子結點。
/**
public class treenode }*/
public class solution
}}
二叉搜尋樹的後續遍歷序列
題目描述
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。
思想:利用遞迴,迴圈判斷樹及其子樹是否滿足二叉搜尋樹的後序遍歷
public class solution
public boolean istreebst(int a,int start,int end)
for(int j=i;jreturn istreebst(a,start,i-1)&&istreebst(a,start,end-1);//遞迴,判斷左右子樹是否二滿足二叉搜尋樹的後序遍歷
}}
劍指offer刷題個人總結(二)
在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。是否有思路 有,解法為從二維陣列的左下角開始遍歷,或向上跳一格,或向右跳一格。是否有改進思路 否。從二維陣列的右上角開始遍歷。如果要找...
劍指offer個人題解1
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。其實這個題目是非常有規律的,所以才可以用複雜度更小的方法來實現。由於其每行自左向右遞增,每列自上而下遞增,所我...
劍指offer 樹 遞迴
輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 回溯 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class solution de...