1. 程式人生 > 其它 >leetcode【相同的樹】

leetcode【相同的樹】

技術標籤:#刷題筆記

題目描述:

給你兩棵二叉樹的根節點 p 和 q ,編寫一個函式來檢驗這兩棵樹是否相同。
如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。

測試用例:
在這裡插入圖片描述

輸入:p = [1,2,3], q = [1,2,3]
輸出:true

思路:

- 如果p,q均為null,直接返回true;
- 如果p,q有一棵樹為null,直接返回false;
- 如果p,q的根節點的值不同,直接返回false;
- 遞迴遍歷p,q的左右子樹,依次判斷是否相同;

程式碼如下:

class TreeNode{
    int val;
    public TreeNode left;
public TreeNode right; public TreeNode(int val) { this.val = val; } public TreeNode(int val, TreeNode left, TreeNode right) { this.val = val; this.left = left; this.right = right; } } public class Solution { public boolean isSameTree(TreeNode p,
TreeNode q) { //如果p,q均為null,直接返回true if (p == null && q == null){ return true; } //如果p,q其中有一棵樹為Null,直接返回false if (p == null || q == null){ return false; } //p,q根節點值不相同則返回false if (p.val != q.val){ return
false; } return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right); } }