按之字形順序列印二叉樹

2022-03-18 03:33:05 字數 1033 閱讀 8008

按之字形順序列印二叉樹

題目描述

請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。

沒有堆疊來回倒的過程

class solution 

stacklevels[2];

vectorvt;

int current = 1;

int next = 0;

levels[current].push(proot);

while ((!levels[0].empty()) || (!levels[1].empty()))

if (nullptr != temp->right)

}else

if (nullptr != temp->left)

}if (levels[current].empty())

}return ret;

}};

與從上到下列印樹只相差乙個翻轉函式和奇偶判斷

與上面方法相比, 多一步倒換堆疊的過程, 若不用翻轉陣列, 則需根據奇偶判斷是倒堆疊還是複製堆疊

class solution 

return ret;

}vector> print(treenode* proot)

stackglobal;

global.push(proot);

bool isend = false;

int i = 0;

while (false == isend)

}else

}while(local.size())

if (i % 2)

else

}return ret;

}};

struct treenode 

};

按之字形順序列印二叉樹

題目描述 按之字形順序列印二叉樹 請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。解析 要分層列印,不能用常規方法,訪問乙個節點後,將該節點的左右子節點壓入佇列。奇數層從左到右列印,偶數層從右向左列印。使...

按之字形順序列印二叉樹

請實現乙個函式按照之字形順序列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右到左的順序列印,第三行再按照從左到右的順序列印,其他行以此類推。include iostream include stack using namespace std struct treenode void pri...

按之字形順序列印二叉樹

其實我們可以借鑑層次遍歷時候的思路,參見劍指offer 060 把二叉樹列印成多行,我們把層次遍歷的結果儲存在vector vector 中每一層儲存在乙個vector中,那麼我們輸出的時候就可以進行調整,按照之字形輸出即可 for int i 0 i if i 1 return ans 完整 如下...