class solution
while(!s.empty())
if(cur->right)
}else
if(cur->left)
}s.pop();
}flag = !flag;
res.push_back(one);
one.clear();
toprint = nextlevel;
nextlevel=0;
}return res;
}};
整體思路對,個別邊界條件有誤。每一層,列印順序就是佇列順序,下一層的列印順序,通過本層全部節點壓棧,然後彈棧,這時候需要判斷是奇數層還是偶數層,奇數層從左到右列印,偶數層從右到左列印。每次棧彈完,下一層的列印順序就做好了,然後收尾工作:奇偶標誌位反轉,當前層加入列印結果,清除臨時存列印結果的vector,下一層要列印的等於nextlevel,下一層等於0. 之字形列印二叉樹
請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。include include include binarytree.h using namespace std void bprint binarytre...
之字形列印二叉樹
請實現乙個函式按照之字形順序從上向下列印二叉樹。即第一行按照從左到右的順序列印,第二層按照從右到左的順序列印,第三行再按照從左到右的順序列印,其他行以此類推。樣例輸入如下圖所示二叉樹 8,12,2,null,null,6,4,null,null,null,null 8 12 2 6 4 輸出 8 2...
之字形列印二叉樹
思路 首先我們需要逐層列印二叉樹,然後根據每一層的狀態判定是從左到右,還是從右到左。首先問題的核心其實是從上到下,從左到右列印二叉樹,只不過後面題目多了兩個要求,所以我們2 的大體框架應該是基於從上到下列印二叉樹 其次逐層列印二叉樹,實際上就是讓我們對每一層設定標誌位,然後根據標誌位去決定列印的情況...