判斷兩個二叉樹是否相同的模板 100 相同的樹

2021-10-08 22:38:58 字數 1346 閱讀 4692

給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。

如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。

示例 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 ...