給定兩個非空二叉樹s和t,檢驗s中是否包含和t具有相同結構和節點值的子樹。s的乙個子樹包括s的乙個節點和這個節點的所有子孫。s也可以看做它自身的一棵子樹。
示例 1:
給定的樹 s:
3給定的樹 t:/ \4 5
/ \1 2
4返回true,因為 t 與 s 的乙個子樹擁有相同的結構和節點值。/ \1 2
示例 2:
給定的樹 s:
3給定的樹 t:/ \4 5
/ \1 2
/0
4返回false。/ \1 2
先呼叫issame函式,這個函式是判斷兩棵樹是否完全相同。如果返回值為true,那麼返回true。否則用s->left呼叫遞迴函式issubtree,用s->right呼叫遞迴函式issubtree,如果兩個遞迴函式中至少有乙個返回true,那麼說明 t 樹在以s->left為根節點的樹中或在以s->right為根節點的樹中,那麼我們返回true,否則返回false。在上面呼叫兩個遞迴函式之前,要先判斷如果s節點為空,那麼我們返回false。在issame函式中,先判斷如果兩個節點都為空,那麼返回true;否則其中有乙個為空,另乙個不為空返回false;接下來判斷如果兩個節點的值相同,並且用左孩子呼叫issame函式返回true並且用右孩子呼叫issame函式也返回true,那麼說明兩棵樹相同,返回true,否則返回false。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
bool issame(treenode* s, treenode* t)
};
leetcode 572 另乙個樹的子樹
在樹的遍歷中,時刻警惕每一處需要訪問的有沒有可能是null,如果null怎麼處理 判斷指標是不是null既能避免訪問空指標而造成程式崩潰,同時也經常能設定遞迴的退出條件 接著先審題 給定兩個非空二叉樹 s 和 t,檢驗s 中是否包含和 t 具有相同結構和節點值的子樹。s 的乙個子樹包括 s 的乙個節...
Leetcode 572 另乙個樹的子樹
題目描述 給定兩個非空二叉樹s和t,檢驗s中是否包含和t具有相同結構和節點值的子樹。s的乙個子樹包括s的乙個節點和這個節點的所有子孫。s也可以看做它自身的一棵子樹。示例 1 給定的樹 s 3 4 5 1 2給定的樹 t 4 1 2返回true,因為 t 與 s 的乙個子樹擁有相同的結構和節點值。示例...
LeetCode 572 另乙個樹的子樹
題目描述 給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹。s 的乙個子樹包括 s 的乙個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。示例 1 給定的樹 s 3 4 5 1 2 給定的樹 t 4 1 2 返回 true,因為 t 與 s 的乙個子樹...