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