LeetCode-100-相同的樹
阿新 • • 發佈:2021-07-12
相同的樹
題目描述:給你兩棵二叉樹的根節點
p
和q
,編寫一個函式來檢驗這兩棵樹是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。
示例說明請見LeetCode官網。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/same-tree/
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
解法一:遞迴
使用遞迴的方法,遞迴方式如下:
- 首先,如果p和q都為null,則返回true;
- 如果p和q只有一個為null,則返回false;
- 如果p和q都不為null,如果p和q的值不相等,則返回false;如果p和q的值相等,則遞迴判斷p和q的左右子樹是不是都相等。
遞迴結束,即可得到結果。
public class LeetCode_100 { public static boolean isSameTree(TreeNode p, TreeNode q) { if (p == null && q == null) { return true; } if ((p == null && q != null) || (p != null && q == null)) { return false; } return p.val == q.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right); } public static void main(String[] args) { TreeNode p = new TreeNode(1); p.left = new TreeNode(2); p.right = new TreeNode(3); TreeNode q = new TreeNode(1); q.left = new TreeNode(2); q.right = new TreeNode(3); System.out.println(isSameTree(p, q)); } }
【每日寄語】 凡事盡力,結果隨緣,心懷感恩,知足常樂。