面試題32 從上到下列印二叉樹 II

2021-10-11 07:22:08 字數 549 閱讀 1380

從上到下按層列印二叉樹,同一層的節點按從左到右的順序列印,每一層列印到一行

思想:和普通的層次遍歷不一樣,這題需要記錄每一層元素的個數,在一趟 while 就遍歷完一層,然後再 add 到結果集裡面,每趟遍歷開始清零下一層元素個數 level ,每次入隊乙個結點,level++

public list

>

levelorder

(treenode root)

queue

queue =

newlinkedlist

();int level =1;

// 該層元素的個數

queue.

offer

(root)

;while

(!queue.

isempty()

)if(node.right != null)

} res.

add(list);}

return res;

}

面試題32 I 從上到下列印二叉樹

從上到下列印出二叉樹的每個節點,同一層的節點按照從左到右的順序列印。例如 給定二叉樹 3 9,20 null,null,15,7 3 9 20 157返回 3 9,20 15,7 思路 該題用到bfs思想,其實跟bfs還是有些差別 因為bfs需要考慮鄰接節點有沒有被遍歷。definition for...

32 從上到下列印二叉樹

從上到下列印出二叉樹的每個節點,同一層的節點按照從左到右的順序列印。例如 給定二叉樹 3,9,20,null,null,15,7 返回 3,9,20,15,7 佇列 definition for a binary tree node.class treenode def init self,x se...

從上到下列印二叉樹

原理是二叉樹的層次遍歷 可以用乙個佇列輔助,先將二叉樹根節點入隊,然後出隊,將該節點存入vector中,之後判斷根節點的左子樹和右子樹是否為空,若不為空,依次入隊。然後出隊,再訪問出隊的結點是否有左右子樹,以此類推。核心 vectorprintfromtoptobottom treenode roo...