樹的子結構

2021-10-03 06:56:11 字數 493 閱讀 6456

兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)

對於樹結構而言,最終的是搞清楚他的遞迴邏輯。這道題要求判斷b是a的子結構,那麼就是要比較對應位置上值是否相等。也就是a中存在乙個節點,該節點的值等於b的根節點值,並且左右子樹和b的左右子樹上的對應位置相等。

按照上面的邏輯,需要遍歷a的所有節點,如果有節點滿足條件,返回true,如果沒有,返回false。從另乙個角度看,如果根節點開始的樹不包含b樹,那麼就看左右子樹是否包含b樹,所以先測試根節點所在的樹是否和b樹能夠對應相等,如果不相等,就去判斷左右子樹是否包含b樹。因此需要兩個函式,乙個函式用來判斷樹1是否包含樹2,乙個函式用來判斷節點1所在的樹1上的節點是否和樹2的節點對應相等。

class

solution

bool

hassubtree

(treenode* root1,treenode* root2)

}

樹的子結構

題目 輸入兩顆二叉樹a和b 判斷b是不是a的子結構 二叉樹結點定義如下 首先 從樹根開始遍歷樹 如果結點與 b的根結點值相同 則繼續遍歷a的左子樹 以及b的左子樹 如果左子樹相同則遍歷a的右子樹以及b的左子樹 如果左右子樹都相同則 a包含b 如果結點與b的根節點值不同 則遍歷到a的左孩子 重複上述判...

樹的子結構

來自 劍指offer 的面試題18。題目 輸入兩棵二叉樹a和b,判斷b是不是a的子結構。二叉樹節點定義如下 public class treenode 思路分析 首先,在tree1中找到和tree2的根節點的值一樣的結點r 然後,再判斷tree1中以r為根結點的子樹是不是包含和tree2一樣的結構。...

樹的子結構

輸入兩顆二叉樹a,b,判斷b是不是a的子結構 思路 1 先判斷兩棵樹是否為空,是則沒有子樹 2 當兩棵樹為非空時,判斷當前的兩個根節點是否為子樹關係,若值相等,則繼續判斷左右子樹是否也對應相等 3 當根節點非子樹關係時,再判斷a樹的左右子樹和b樹是否有子樹。public class treenode...