牛客網 21天刷題計畫 第2節 高階 對稱的二叉樹

2022-08-21 10:18:11 字數 908 閱讀 3798

使用非遞迴的二叉樹遍歷實現。

#includeusing namespace std;

const int maxn=10000;/*

struct treenode

};*/

class solution

if(p_l->right!=null)

}return top==-1;

}};

經過數十次的提交最後終於過了

第一次找出沒有考慮這個if(proot==null)return true;

提交多次,會想以前寫過的遍歷演算法,遞迴和非遞迴都是一樣的思路,沒有什麼漏洞

懷疑棧定義的問題,將maxn改為1000沒有用,又改成1e6還是沒有用

看了一眼老師和其它同學的提交記錄都是使用遞迴的方法,開始就是懷疑棧溢位,但是使用了陣列棧還是溢位應該不可能

整理了一下思路,有看是整理了一下**

第二次找出判斷出錯

bool bpll=p_l->left==null,bplr=p_l->right==null;

bool bprl=p_r->left==null,bprr=p_r->right==null;

if((bpll^bprr)||(bplr^bprl))break;

還是不行,繼續往下找,發現入棧時,判斷是這樣寫的if(p_l!=null)and if(p_l!=null)

改了過來,過了10%

開始肯定了自己的邏輯,找了一下**,沒錯

第三次找出題意的對稱不僅僅是形狀上的對稱,數值上也要對稱相等,加上了if(p_l->val!=p_r->val)return false;

然後就過了。

思路:形狀上的對稱只要,同時先序遍歷後序遍歷,如果同時存在相同的子節點就對稱,數值就在判斷子節點的時候,判斷一下數值就行。

牛客21天刷題 day 2

牛客contents 2.小易喜歡的單詞 題目圓的半徑平方為s,求座標系裡在這個圓周上面的整數座標點有幾個 輸入253 輸出12 0 思路和解答 math.sqrt 4 2.0 type math.sqrt 4 float math.sqrt 4 int math.sqrt 4 true 注意ran...

牛客網刷題 尋找第K大

有乙個整數陣列,請你根據快速排序的思路,找出陣列中第k大的數。給定乙個整數陣列a,同時給定它的大小n和要找的k k在1到n之間 請返回第k大的數,保證答案存在。輸入描述 輸入乙個陣列 陣列長度 k大 輸出描述 輸出k大座標 輸入 1,3,5,2,2 5,3 輸出 2本題與之前的最小的k個數思路相類似...

MySQL刷題 牛客網 Day2

今天繼續刷題!獲取所有員工當前的manager 獲取所有員工當前的manager,如果當前的manager是自己的話結果不顯示,當前表示to date 9999 01 01 結果第一列給出當前員工的emp no,第二列給出其manager對應的manager no。create table dept...