概述
在上次基本遍历后,总结一下二叉树的层次遍历、二叉树的生成、求节点深度、统计节点数,二叉树的结构定义为:
1 | //Definition for a binary tree node. |
层次遍历
使用队列进行层次遍历,先将节点入列,访问节点时出列,并将子节点入列,循环至队列为空,则遍历结束。
1 | public void levelOrder(TreeNode root) { |
二叉树的生成
用Scanner接收输入,节点用空格“ ”分离,”#”代表空节点,利用前序遍历生成二叉树。
1 | public void createTree(Scanner scanner, TreeNode root) { |
求节点深度
递归求深度,返回最大子节点深度加一,子节点为空则返回0。
1 | private static int depthOfNode(TreeNode parent) { |
统计节点数
与求节点深度类似,递归求解,返回子节点数和+1,子节点为空则返回0。
1 | private static int countOfNodes(TreeNode parent) { |