static void LeftView(TreeNode node) {
Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue.offer(node);
//設置 size 和 child 兩個標記,child在循環中會變,size不會變,作爲循環條件
//第一層只有根節點1個,所以size = 1
int size = 1;
//記錄孩子數
int child;
while (!queue.isEmpty()) {
//初始化孩子數爲 0
child = 0;
for (int i = 0; i < size; i++) {
TreeNode node1 = queue.poll();
// i == 0,說明是該層第一個結點
//i == size - 1 就變成了右視圖
if (i == 0) {
System.out.println(node1.val);
}
if (node1.left != null) {
queue.offer(node1.left);
child++;
}
if (node1.right != null) {
queue.offer(node1.right);
child++;
}
}
size = child;
}
}
二叉樹的左(右)視圖
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.