leetcode100題 題解 翻譯 C語言版 Python版
100. Same Tree
Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
100.相同的樹
給定兩棵二叉樹,寫一個函式來檢查他們是否相等
這裡說的兩棵二叉樹相等是指他們結構完全相同並且對應的結點有相同的值。
思路:用遞迴可快速解決問題。當比較兩棵樹的對應兩個結點時,如果他們的左子樹完全一樣,右子樹完全一樣,同時這兩個結點的值也一樣,那麼就可以得到兩個結點帶領的樹是完全一樣的了。由於存在一些結點有左子樹卻右子樹為空,或有右子樹卻左子樹為空,這樣在呼叫函式本身時會把NULL作為引數傳下去,所以遞迴的終點應該是比較的兩個結點指標值為空。如果兩個都是空,那就視為相同,返回true。而一個為空另一個不為空就視為不同,返回false,不用往下遞迴了。
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
if (p == NULL && q == NULL) return true;
if (p == NULL || q == NULL) return false;
if (p->val==q->val && isSameTree(p->left, q->left) && isSameTree(p->right, q->right))
return true;
else
return false;
}
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def isSameTree(self, p, q):
"""
:type p: TreeNode
:type q: TreeNode
:rtype: bool
"""
if p == None and q == None: return True
if p == None or q == None: return False
if p.val == q.val and self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right):
return True
else:
return False
相關文章
- (C語言版)猴子吃桃問題C語言
- C語言編譯器手機版C語言編譯
- POJ2236詳細的解題報告(C語言版)C語言
- [譯]RabbitMQ教程C#版 - 主題MQC#
- C語言解決排序問題C語言排序
- 1234: 華科版C語言程式設計教程(第二版)習題6.11(約瑟夫問題)C語言程式設計
- 終極版C語言(一)-尹成-專題視訊課程C語言
- 終極版C語言(二)-尹成-專題視訊課程C語言
- 終極版C語言(三)-尹成-專題視訊課程C語言
- 終極版C語言(四)-尹成-專題視訊課程C語言
- 終極版C語言(五)-尹成-專題視訊課程C語言
- 終極版C語言(六)-尹成-專題視訊課程C語言
- 終極版C語言(七)-尹成-專題視訊課程C語言
- 終極版C語言(八)-尹成-專題視訊課程C語言
- 終極版C語言(九)-尹成-專題視訊課程C語言
- 終極版C語言(十)-尹成-專題視訊課程C語言
- 終極版C語言(十一)-尹成-專題視訊課程C語言
- 終極版C語言(十二)-尹成-專題視訊課程C語言
- 終極版C語言(十三)-尹成-專題視訊課程C語言
- 終極版C語言(十四)-尹成-專題視訊課程C語言
- 終極版C語言(十五)-尹成-專題視訊課程C語言
- 終極版C語言(十六)-尹成-專題視訊課程C語言
- Linux下C語言編譯的問題LinuxC語言編譯
- 求助(請教C語言編譯問題)(轉)C語言編譯
- C程式設計語言(第2版·新版)練習題1-6C程式程式設計
- C程式設計語言(第2版·新版)練習題1-7C程式程式設計
- C程式設計語言(第2版·新版)練習題1-4C程式程式設計
- C程式設計語言(第2版·新版)練習題1-5C程式程式設計
- C程式設計語言(第2版·新版)練習題1-8C程式程式設計
- C 語言版執行緒池執行緒
- C語言字串例題C語言字串
- C語言的謎題C語言
- 用C語言解決迷宮問題C語言
- python3:爬有道翻譯(命令列版)Python命令列
- Mate Translate for Mac(多語言翻譯軟體) v8.1.3中文版Mac
- 使用google翻譯 api 翻譯中文成其他語言GoAPI
- 15. 三數之和_(c語言版)C語言
- 最短的崩潰程式(C語言版)C語言