劍指Offer 59. 按之字形順序列印二叉樹 (二叉樹)
阿新 • • 發佈:2018-11-11
題目描述
請實現一個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。
題目地址
思路
層次遍歷儲存結點,最後奇數層翻轉
Python
# -*- coding:utf-8 -*- classTreeNode: def __init__(self, x): self.val = x self.left = None self.right = None node1 = TreeNode(1) node2 = TreeNode(2) node3 = TreeNode(3) node4 = TreeNode(4) node5 = TreeNode(5) node1.left = node2 node1.right = node3 node2.left = node4 node3.right = node5 class Solution:def Print(self, pRoot): # write code here # 層次遍歷儲存結點,最後奇數層翻轉 ans = [] if not pRoot: return ans queue = [] queue.append(pRoot) while queue: temp = [] for i in range(len(queue)): r = queue.pop(0) temp.append(r.val)if r.left: queue.append(r.left) if r.right: queue.append(r.right) ans.append(temp) for i in range(1,len(ans),2): ans[i] = ans[i][::-1] return ans if __name__ == '__main__': # [[1] [3 2] [4 5]] result = Solution().Print(node1) print(result)