輸入兩顆二叉樹a,b,判斷b是不是a的子結構。
題解:我們這個主要的問題就是,如何去判斷乙個是不是另乙個的子樹,首先一點。我們肯定涉及到對於樹的值得比較,肯定會和遍歷有關係啦。遍歷最簡單的遞迴去處理。
package jianzhioffer;
/** * 思路:
* 1.我們要找到相同的根,然後進行一一的比較是否相等。這個過程中我們需要遍歷我們的樹
* 2.找到相同的根之後,進行一一的左右樹的比較,也需要遍歷
*@author jetwang
* */
public
class
sloution15
if(!flag)
if(!flag)
}return flag;
}/**
* 這個是乙個遞迴的過程,我們知道,root2,是roo1 的子樹的條件是,對應的節點相等
*@param root1
*@param root2
*@return
*/public
boolean
issubtree(treenode root1, treenode root2)
/*** root2都不為空,root1為空肯定不相等啦
*/if(root1==null)
if(root1.val!=root2.val)
/*** 比較相應的左右子樹
*/return issubtree(root1.left,root2.left)&&issubtree(root1.right,root2.right);
}}
碼農小汪 劍指Offer之31 醜數
把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。因子中僅僅包含2 3 5的數,稱為醜數。比如說14,就不是醜數,因為因子包含7。請輸出所有醜數中的第n個醜數。第乙個是基本的思...
碼農小汪劍指Offer之37 平衡二叉樹判定
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。求解二叉樹的高度,比較就知道了 package jianzhioffer public class sloution37 高度差正確就繼續求解,這裡寫的不好 求解高度沒有利用儲存起來 if math.abs getlength root.left get...
劍指offer之樹專題(一)
題目 思路 前中 二叉樹,前 根 左 右,中 左 根 右 先得根在中序遍歷中的位置,然後可得左子樹的長度,遞迴遍歷。class solution treenode recur vector preorder,int l1,int r1,vector inorder,int l2,int r2 題目 ...