給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。
如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。
示例 1:
輸入: 1 1
/ \ / \
2 3 2 3
[1,2,3], [1,2,3]
輸出: true
示例 2:
輸入: 1 1
/ \
2 2
[1,2], [1,null,2]
輸出: false
示例 3:
輸入: 1 1
/ \ / \
2 1 1 2
[1,2,1], [1,1,2]
輸出: false
題目給定兩個樹,判斷兩個樹是不是完全相同。兩個方法:①遞迴法②迭代法
迭代法
# definition for a binary tree node.
# class treenode:
# def __init__(self, val=0, left=none, right=none):
# self.val = val
# self.left = left
# self.right = right
class solution:
def issametree(self, p: treenode, q: treenode) -> bool:
if not p and not q:
return true
if not p or not q:
return false
#遞迴#return p.val==q.val and self.issametree(p.left,q.left) and self.issametree(p.right,q.right)
#迭代res_p,res_q = ,
def helper(root,res):
queue = collections.deque()
while queue:
item = queue.popleft()
if item:
else:
helper(p,res_p)
helper(q,res_q)
return res_p==res_q
總結 判斷兩個樹是否相同的模板。 判斷兩個二叉樹是否相同
判斷兩個二叉樹是否相同 遞迴解法 public boolean issametreerec treenode p,treenode q if p null q null else else else 第一次寫了乙個是這樣的,自己覺得也可以,提交時不能ac,想了下根本是自己演算法立足點不對,分享下 對...
比較兩個二叉樹是否相同
也許你看過書,也許你背過 都不重要。重要的是,你能將你看過的變成自己的想法,然後實現它 不在其他 的陰影下活著,讓你的 舞動起來!也許 可能看起來有點不簡潔 思想 可以按照遞迴的思路進行,左子樹是否相等,右子樹是否相等進行遍歷 bool equal btnode pa,btnode pb if pa...
判斷兩個二叉樹是否相同(c 遞迴實現)
判斷兩棵二叉樹是否為同一棵樹,需要比較兩個方面 一 結構是否相同 二 每個節點上的元素是否相同 當二者都滿足的時候才可判定二者為同一棵二叉樹。結構相同包括節點的個數以及每個節點上的子樹相同。下面是 實現。include using namespace std typedef struct node ...