題目描述:
給定兩個二叉樹,撰寫一個函式來檢驗它們是否相同,如果兩個樹在結構上相同,并且節點具有相同的值,則認為它們是相同的,

JAVA代碼如下:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null && q==null) {
return true;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(p);
queue.offer(q);
while (!queue.isEmpty()) {
// 每次出隊兩個節點 node1 和 node2
TreeNode node1 = queue.poll();
TreeNode node2 = queue.poll();
// 首先比較 node1 與 node2 這兩個節點的值是否相等
if (node1 == null && node2 == null) {
continue;
}
if (node1 == null || node2 == null || node1.val != node2.val) {
return false;
}
// 再將 node1 的左節點與 node2 的右節點一起入隊(以便兩節點一起出隊,進行比較)
queue.offer(node1.left);
queue.offer(node2.left);
// 再將 node1 的右節點與 node2 的左節點一起入隊(以便兩節點一起出隊,進行比較)
queue.offer(node1.right);
queue.offer(node2.right);
}
return true;
}
}
執行結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/256296.html
標籤:其他
上一篇:FFT HDL Optimized模塊HDL綜合代碼生成及與Xilinx xfft IP MEX介面精度詳細比較
