严氏北美IT公司面试真题汇总和解答论坛
Would you like to react to this message? Create an account in a few clicks or log in to continue.

BinaryTree Zigzag Level Order Traversal 仅打印不需返回值

Go down

BinaryTree Zigzag Level Order Traversal 仅打印不需返回值 Empty BinaryTree Zigzag Level Order Traversal 仅打印不需返回值

Post by Admin Sat Oct 21, 2017 5:45 pm

public static void zigzagLevelOrder(BTreeNode root) {
if (root == null)
return;
Stack<BTreeNode> curLevel = new Stack<BTreeNode>();
Stack<BTreeNode> nextLevel = new Stack<BTreeNode>();
Stack<BTreeNode> tmp;
curLevel.push(root);
boolean leftToRight = true;
while(!curLevel.isEmpty()){
int s_size = curLevel.size();
for (int i = 0; i < s_size; i++) {
BTreeNode curNode = curLevel.pop();
System.out.print(curNode.val+" ");
if(leftToRight){
if (curNode.left != null)
nextLevel.push(curNode.left);
if (curNode.right != null)
nextLevel.push(curNode.right);
}else{
if (curNode.right != null)
nextLevel.push(curNode.right);
if (curNode.left != null)
nextLevel.push(curNode.left);
}
}
System.out.println();
tmp = curLevel;
curLevel = nextLevel;
nextLevel = tmp;
leftToRight = !leftToRight;
}
}

Admin
Admin

Posts : 124
Join date : 2017-10-21

https://csinterviewquestions.forumotion.com

Back to top Go down

Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum