題目要求:求一顆二叉樹的有底向上的zigzag層次遍歷,返回遍歷結(jié)果。zigzag就是先從左往右,再?gòu)挠彝?;如此循環(huán),直到便利到樹的最底層。
二叉樹
返回結(jié)果
思路:使用隊(duì)列,從根開始,每一層的節(jié)點(diǎn)都入隊(duì),然后對(duì)每層中出現(xiàn)的節(jié)點(diǎn)挨個(gè)出隊(duì),出隊(duì)時(shí),把出隊(duì)的節(jié)點(diǎn)保存到一個(gè)list中,然后在每層的入隊(duì)出隊(duì)操作完成后,將list保存到結(jié)果中。
特殊情況就是根節(jié)點(diǎn)為空時(shí),返回值為[]
這個(gè)題目跟Binary Tree Inorder Traversal和Binary Tree Inorder TraversalII的區(qū)別就在于每一層返回結(jié)果的順序,可以借助一個(gè)布爾型變量控制從左向右還是從右向左來(lái)處理。
代碼如下
運(yùn)行結(jié)果為: