59 按之字形順序列印二叉樹

2021-08-27 05:32:45 字數 471 閱讀 9840

題目描述

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

思路:利用兩個棧 stack1和stack2,分別存放奇數行結點和偶數行結點;設定行號變數,例如layer來表示奇數行或者偶數行。

當列印stack1中的結點的同時,將該結點的子樹按照先左子樹後右子樹的順序壓入stack2;

當列印stack2中的結點的同時,將該結點的子樹按照先右子樹後左子樹的順序壓入stack1。

自己畫個圖就知道了。

/*

struct treenode

};*/

class solution

}else

}res.push_back(tmp);

++layer;

}return res;

}};

59 按之字形順序列印二叉樹

請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。這道題還是二叉樹的層序遍歷思想,在每一層將資料存入另乙個棧中,其實也可以用佇列實現 struct treenode class solution if po...

59 按之字形順序列印二叉樹

請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。import j a.util.arraylist import j a.util.stack public class treenode public c...

按之字形順序列印二叉樹

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