請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。
/*我的解法是用兩個棧來列印,第乙個棧st1列印奇數層,第二個棧st2列印偶數層。
先將根節點壓入st1,然後將st1中元素出棧並訪問元素,出棧的同時,將每個節點的右孩子、左孩子壓入棧st2。直至棧st1空。
這個時候再處理下一層,即棧st2,同樣是出棧並訪問元素,出棧的同時,將每個節點的左孩子、右孩子壓入st1。直至棧st2為空。
重複上面的過程,直至整棵樹遍歷結束。 */
/*樹節點的說明
struct treenode };
*/class solution
stackst1;
stackst2;
treenode *pnode;
vectorvalvec;
st1.push(proot);
while(!st1.empty())
if (pnode->right)
st1.pop(); }
tree.push_back(valvec);
valvec.clear();
while (!st2.empty())
if (pnode->left)
st2.pop(); }
if (!valvec.empty()) }
return tree; }
};
3 15 劍指offer 按之字形順序列印二叉樹
請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。層序遍歷的高階 每行的節點的訪問順序是相反的,我們可以用兩個棧來隔行儲存,乙個棧中根據另乙個棧的棧頂元素的 左結點 右結點 的順序儲存節點,而另乙個棧根據另...
劍指offer 按之字形順序列印二叉樹
題目 劍指offer 按之字形順序列印二叉樹 這個題的本質是返回每一層的節點,關鍵是增加每一層的最右側節點作為標記。如果指標到達這個節點,那麼證明此時佇列裡面的都是下一層的節點。關鍵是為什麼不會有下下層的節點,因為現在訪問到last,最多生成下一層的節點,不會有下下層。所以,此時佇列中最後乙個節點就...
劍指offer 按之字形順序列印二叉樹
題目描述 請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。思路 典型的層次遍歷,但是要按之字形列印,所以遍歷的時候要分奇偶層,則要在遍歷裡稍微改動一下,一次要遍歷一層,而不是一次只遍歷乙個結點。struc...