剑指Offer - 面试题26. 树的子结构(双重递归)
生活随笔
收集整理的這篇文章主要介紹了
剑指Offer - 面试题26. 树的子结构(双重递归)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 題目
輸入兩棵二叉樹A和B,判斷B是不是A的子結(jié)構(gòu)。(約定空樹不是任意一個樹的子結(jié)構(gòu))
B是A的子結(jié)構(gòu), 即 A中有出現(xiàn)和B相同的結(jié)構(gòu)和節(jié)點值。
例如: 給定的樹 A:3/ \4 5/ \1 2 給定的樹 B:4 /1 返回 true,因為 B 與 A 的一個子樹擁有相同的結(jié)構(gòu)和節(jié)點值。示例 1: 輸入:A = [1,2,3], B = [3,1] 輸出:false示例 2: 輸入:A = [3,4,5,1,2], B = [4,1] 輸出:true限制: 0 <= 節(jié)點個數(shù) <= 10000來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcof
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
2. 解題
- 遍歷A每個節(jié)點,值與 B 的 root 值相等的,開啟再次遞歸 check
- 優(yōu)化:return isSubStructure(A->left,B)||isSubStructure(A->right,B)可以剪枝,找到后及時 return
總結(jié)
以上是生活随笔為你收集整理的剑指Offer - 面试题26. 树的子结构(双重递归)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 611. 有效三角形的
- 下一篇: LeetCode 791. 自定义字符串