LeetCode 100 相同的樹

2021-10-23 11:25:16 字數 1209 閱讀 8034

題目描述:

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

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

思路:

使用遞迴;

兩棵樹都為空,返回true;

兩棵樹只有一顆為空,返回false;

兩棵樹都不空,比較他們對應左右子樹的值,相同返回true,不同返回false。

**:

/**

* definition for a binary tree node.

* struct treenode ;

*/#include

#include

#include

#define bool int

#define true 1

#define false 0

bool issametree

(struct treenode* p,

struct treenode* q)

遇到的問題:

錯誤部分:

if

(p->val==q->val)

報錯:

line 25

: char 13

: runtime error:member access within null pointer of type 'struct treenode'(solution.c)

錯誤原因是試圖使用空指標,沒有判斷當前指標是否指向了乙個有意義的位置。

我們只需要增加令其有意義的判斷條件即可,即指標是否為null

修改後的**

if

(p!=

null

&&q!=

null

&&p->val==q->val)

知識補充:

1.#define bool int

c語言中預設不支援"bool"資料型別,此處用巨集定義的方式來實現"bool"資料型別的功能使用,把bool換成int

2.遞迴

方法自己呼叫自己

遺留問題:

#include

LeetCode 100 相同的樹

題目描述 給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 輸入 1 1 2 3 2 3 1,2,3 1,2,3 輸出 true輸入 1 1 2 2 1,2 1,null,2 輸出 false輸入 1 1 2 1 1 2 1,2,...

LeetCode 100 相同的樹

給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 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...

leetcode100 相同的樹

給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 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...