BinaryTree Zigzag Level Order Traversal 仅打印不需返回值
严氏北美IT公司面试真题汇总和解答论坛 :: LinkedIn公司面试真题: 注册用户可以看到隐藏题目:2017年下半年上机题,8 9 10三个月的onsite面试真题 :: 广度优先搜索:二叉树系列
Page 1 of 1
BinaryTree Zigzag Level Order Traversal 仅打印不需返回值
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;
}
}
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;
}
}
严氏北美IT公司面试真题汇总和解答论坛 :: LinkedIn公司面试真题: 注册用户可以看到隐藏题目:2017年下半年上机题,8 9 10三个月的onsite面试真题 :: 广度优先搜索:二叉树系列
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum
|
|