学点算法,挺有意思的
/**
* 分层遍历二叉树(按层次从上往下,从左往右)
* */
private static void specialTraversal(Node node){
if(node == null){
System.out.print("--null--");
return;
}
Queue<Node> queue = new LinkedBlockingDeque<>();
if(node != null){
queue.add(node);
}
while (!queue.isEmpty()){
Node node1 = queue.poll();
printNodeValue(node1);
if(node1.left !=null){
queue.add(node1.left);
}
if(node1.right !=null){
queue.add(node1.right);
}
}
}
/**
* 获得深度
*/
private static int getNodeDeepNum(Node node) {
if (node == null) {
return 0;
}
int leftDeepNum = getNodeDeepNum(node.left)+1;
int rightDeepNum = getNodeDeepNum(node.right)+1;
return Math.max(leftDeepNum,rightDeepNum);
}