leetcode第二題100:same tree
比較兩個二叉樹是否一樣,這道題的思路很容易想到,就是左右兩邊同事深入,只要發現有不一樣的分支,直接返回false,
struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} };
bool isSameTree(TreeNode* p, TreeNode* q) { if(p==NULL&&q==NULL) return true; if(p==NULL||q==NULL) return false; if(p->val!=q->val) return false; return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right); }
遞迴的強大,沒事的時候好好理解一下,簡單而又不簡單。
相關推薦
leetcode第二題100:same tree
比較兩個二叉樹是否一樣,這道題的思路很容易想到,就是左右兩邊同事深入,只要發現有不一樣的分支,直接返回false, struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(
LeetCode演算法題100:相同的樹解析
給定兩個二叉樹,編寫一個函式來檢驗它們是否相同。 如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。 示例1: 輸入: 1 1 / \ / \ 2 3 2
LeetCode刷題100. Same Tree
題目: Given two binary trees, write a function to check if they are the same or not. Two binary trees are considered the same if they are
LeetCode第二題:Add Two Numbers
ret lists exce sel onu plan each 們的 理解 You are given two non-empty linked lists representing two non-negative integers. The digits are st
LeetCode第二題:兩樹相加(C語言)
給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。 你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 示例: 輸入:(2 -> 4 -> 3) + (5 -> 6
LeetCode第二題:兩數相加(addTwoNumbers)的Python3實現。
題目描述:You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of t
LeetCode第二題:兩數相加(Add Two Numbers)
LeetCode第二題:兩數相加(python,java) You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse
LeetCode 第二題:兩數相加--C++/Python3
今天做這個第二題,就卡在對連結串列知識不夠熟悉,似懂非懂,瞭解的不夠透徹!!接下來就記錄程式程式碼,來加深對連結串列的熟悉:1、兩數相加--C++:主要思想:按照按位相加,判斷進位情況,來輸出相應的結果/** * Definition for singly-linked l
LeetCode:Same Tree
給定兩顆二叉樹,寫一個函式判斷這兩棵樹是否相等。如果兩棵樹的結構和各節點中儲存的值是相等的,則認為這兩棵樹相等。 解題方法 本題可以採用先根遍歷的方法,從上到下遞迴考察各節點。在任意一對節點的比較中,如果左右枝是否為空的屬性和節點中的val值不相等,則認為兩
LeetCode演算法題69:x的平方根解析
實現 int sqrt(int x) 函式。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。 示例1: 輸入: 4 輸出: 2 示例2: 輸入: 8 輸出: 2 說明: 8 的平方根是 2.82842...,
LeetCode演算法題66:加一解析
給定一個由整陣列成的非空陣列所表示的非負整數,在該數的基礎上加一。 最高位數字存放在陣列的首位, 陣列中每個元素只儲存一個數字。 你可以假設除了整數 0 之外,這個整數不會以零開頭。 示例1: 輸入: [1,2,3] 輸出: [1,2,4] 解釋: 輸入陣列表示數字 123。 示例
LeetCode演算法題58:最後一個單詞的長度解析
給定一個僅包含大小寫字母和空格 ’ ’ 的字串,返回其最後一個單詞的長度。 如果不存在最後一個單詞,請返回 0 。 說明: 一個單詞是指由字母組成,但不包含任何空格的字串。 示例: 輸入: "Hello World" 輸出: 5 這個題一開始誤解了題目的意思,以為最後一個字元是空格
LeetCode演算法題53:最大子序和解析
給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。 這個題如果用暴力破解怕是複雜度有些過於
LeetCode演算法題38:報數解析
報數序列是一個整數序列,按照其中的整數的順序進行報數,得到下一個數。其前五項如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 被讀作 “one 1” (“一個一”) , 即 11。 11 被讀作 “two 1s
LeetCode演算法題35:搜尋插入位置解析
給定一個排序陣列和一個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。 你可以假設陣列中無重複元素。 示例1: 輸入: [1,3,5,6], 5 輸出: 2 示例2: 輸入: [1,3,5,6], 2 輸出: 1 示例3:
LeetCode演算法題28:實現strStr()解析
實現 strStr() 函式。 給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。 示例1: 輸入: haystack = "hello", needle = "ll"
LeetCode演算法題27:移除元素解析
給定一個數組 nums 和一個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。 不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 O(1) 額外空間的條件下完成。 元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。 示例1: 給定 num
LeetCode演算法題26:刪除排序陣列中的重複項解析
給定一個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。 不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 O(1) 額外空間的條件下完成。 示例1: 給定陣列 nums = [1,1,2], 函式應該返回新的長度 2, 並且原陣列
LeetCode演算法題21:合併兩個有序連結串列解析
將兩個有序連結串列合併為一個新的有序連結串列並返回。新連結串列是通過拼接給定的兩個連結串列的所有節點組成的。 示例: 輸入:1->2->4, 1->3->4 輸出:1->1->2->3->4->4 因為之前做過兩數之和的那道題,
LeetCode演算法題20:有效的括號解析
給定一個只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字串,判斷字串是否有效。 有效字串需滿足: 左括號必須用相同型別的右括號閉合。 左括號必須以正確的順序閉合。 注意空字串可被認為是有效字串。 示例1: 輸入: "()" 輸出: true