剑指Offer_17_树的子结构
生活随笔
收集整理的這篇文章主要介紹了
剑指Offer_17_树的子结构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構)
解題思路
首先判斷 A 和 B 是否是空,如果為空,返回false;否則找到 A 和 B 的根結點相同的結點,然后依次比較。可以用遞歸的形式在 A 中找 B 的根結點。
實現
/*樹結點定義*/ public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;} } /*實現*/ 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;} }轉載于:https://www.cnblogs.com/ggmfengyangdi/p/5769737.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的剑指Offer_17_树的子结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Html5元素及基本语法
- 下一篇: 《JS权威指南学习总结--3.8类型转换