剑指Offer_17_树的子结构
生活随笔
收集整理的這篇文章主要介紹了
剑指Offer_17_树的子结构
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
輸入兩棵二叉樹A,B,判斷B是不是A的子結(jié)構(gòu)。(ps:我們約定空樹不是任意一個(gè)樹的子結(jié)構(gòu))
解題思路
首先判斷 A 和 B 是否是空,如果為空,返回false;否則找到 A 和 B 的根結(jié)點(diǎn)相同的結(jié)點(diǎn),然后依次比較。可以用遞歸的形式在 A 中找 B 的根結(jié)點(diǎn)。
實(shí)現(xiàn)
/*樹結(jié)點(diǎn)定義*/ public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;} } /*實(shí)現(xiàn)*/ public class Solution {public boolean HasSubtree(TreeNode root1,TreeNode root2) {if (root1 == null || root2 == null) return false;boolean result = check(root1, root2);if (!result) result = HasSubtree(root1.left, root2) || HasSubtree(root1.right, root2);return result;}private boolean check(TreeNode root1, TreeNode root2) {if (root1 == null && root2 == null) return true;else if (root2 == null) return true;else if (root1 == null) return false;if (root1.val == root2.val) return check(root1.left, root2.left) && check(root1.right, root2.right);return false;} }轉(zhuǎn)載于:https://www.cnblogs.com/ggmfengyangdi/p/5769737.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的剑指Offer_17_树的子结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Html5元素及基本语法
- 下一篇: Mathematica数据处理(11)-