Reverse Odd Levels of Binary Tree (Leetcode 2415)

Problem Link: https://leetcode.com/contest/weekly-contest-311/problems/reverse-odd-levels-of-binary-tree/

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def reverseOddLevels(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        q=[root]
        c=0
        while(len(q)>0):
            
            if(c%2!=0):
                start=0
                end=len(q)-1
                while(start<=end):
                    q[start].val,q[end].val=q[end].val,q[start].val
                    start+=1
                    end-=1
            for i in range(len(q)):
                node=q.pop()
                if(node.left is not None):
                    q.insert(0,node.left)
                if(node.right is not None):
                    q.insert(0,node.right)
            c+=1
        
        return root      

Last updated