我遇到了一个有趣的问题:
给定二进制树以向内螺旋顺序打印它,即第一打印级别1,然后是级别n,然后是级别2,然后是n-1,依此类推.
For Ex: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Should Output: 1 15 14 13 12 11 10 9 8 2 3 7 6 5 4
我想到了一个解决方案:
将每个级别元素存储在列表
列表中[0] = [1]
列表[1] = [2,3]
列表[2] = [4,5,6,7]
列表[3] = [8,9,10 ,11,12,13,14,15]
按所需顺序(0,n-1,1,n-2,...)循环列表列表并打印.以下n
是在上述情况下为4的级别数.
它的空间复杂度为O(n).我相信可能有一个更好的解决方案,它有更好的空间复杂性,但我想不出它.任何人有任何指针?