劍指offer 樹 個人總結

2021-09-25 10:46:14 字數 1064 閱讀 5314

樹的子結構

題目描述

輸入兩棵二叉樹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...