這題的技巧是判斷奇偶,如一條路徑為【2,3,3】,那麼【3,2,3】即是回文序列。但如果一條路徑為【2,3,3,4】,則無回文序列。統計每個數出現的次數,若次數為奇數的數個數大於1個,無法轉換成回文序列,反之則可以。
遞迴
int pseudopalindromicpaths (treenode* root)
intfunc
(treenode* root,vector<
int>
& count)
if(root->right)if(
!root->left&&
!root->right)
if(tmp<=
1) ans++
;//次數小於2,則可以轉換稱回文序列
} count[root->val]--;
return ans;
}
改進,用lambda表示式,可呼叫物件function
int pseudopalindromicpaths (treenode* root)
if(root->right)if(
!root->left&&
!root->right)
if(tmp<=
1) ans++
;//次數小於2,則可以轉換稱回文序列
} count[root->val]--;
return ans;};
return
func
(root,count)
;}
LeetCode演算法題 對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。definition for a binary tree node.pub...
LeetCode高頻題 二叉樹(二)
我開了乙個leetcode會員,選擇了一些高頻率題目。這個系列是希望幫助大家每天花30分鐘的題目了解面試高頻題,讓大家面試更加游刃有餘。本期我們講解三道樹的簡單題。上期我們說到關於樹的題目總是會跟遞迴扯上關係,而本期我們從遞迴入手,引出迭代的做法,比如說利用佇列 棧等資料結構代替遞迴操作。本期所用的...
leetcode 二叉樹 對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 方法一 遞迴 思路 如果乙個樹的左子樹與右子樹映象對稱,則該樹是對稱的 兩個樹互為映象的...