按「之」字形順序列印矩陣(演算法)

2021-09-20 15:23:55 字數 614 閱讀 4302

列印結果為:4,5,6,1,6,6,9,3,7。

要求額外空間複雜度為o(1)。

演算法思想:根據上例容易觀察出之字形可以拆分成列印上圖直線上的數字,只需將列印方向改變就可以滿足題目要求。設定兩個初始點a和b,同時讓點a向右移動,點b向下移動,當a移動到右邊界時再繼續向下移動,當b移動到下邊界時再向右移動。a和b每移動一次就列印ab直接上的數字,退出條件為row1>endr或col2>endc。

package test_class_03;

public class zigzagprintmatrix

system.out.println(); }

public static void printline(int m,int row1,int col1,int row2,int col2,boolean fromup)

}else

} }public static void main(string args) ,,};

printmatrixzigzag(m);

}}

按之字形順序列印二叉樹

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

按之字形順序列印二叉樹

請實現乙個函式按照之字形順序列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右到左的順序列印,第三行再按照從左到右的順序列印,其他行以此類推。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 完整 如下...