91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解析python二叉樹的右視圖

發布時間:2021-12-13 15:46:49 來源:億速云 閱讀:155 作者:柒染 欄目:大數據

本篇文章為大家展示了如何解析python二叉樹的右視圖,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

給定一棵二叉樹,想象自己站在它的右側,按照從頂部到底部的順序,返回從右側所能看到的節點值。

示例:

輸入: [1,2,3,null,5,null,4]         輸出: [1, 3, 4] 解釋:    1            <---  /   \ 2     3         <---  \     \   5     4       <---

答案:

 1public List<Integer> rightSideView(TreeNode root) {
2    if (root == null)
3        return new ArrayList();
4    Queue<TreeNode> queue = new LinkedList();
5    queue.offer(root);
6    List<Integer> res = new ArrayList();
7    while (!queue.isEmpty()) {
8        int size = queue.size();
9        while (size-- > 0) {
10            TreeNode cur = queue.poll();
11            if (size == 0)
12                res.add(cur.val);
13            if (cur.left != null)
14                queue.offer(cur.left);
15            if (cur.right != null)
16                queue.offer(cur.right);
17        }
18    }
19    return res;
20}

解析:

原理很簡單,我們通過bfs(廣度優先搜索)遍歷每一行,然后記錄一下每一行的最右的那個節點即可。在看一種遞歸的解法

 1public List<Integer> rightSideView(TreeNode root) {
2    List<Integer> result = new ArrayList<Integer>();
3    rightView(root, result, 0);
4    return result;
5}
6
7public void rightView(TreeNode curr, List<Integer> result, int currDepth) {
8    if (curr == null) {
9        return;
10    }
11    if (currDepth == result.size()) {
12        result.add(curr.val);
13    }
14    rightView(curr.right, result, currDepth + 1);
15    rightView(curr.left, result, currDepth + 1);
16}

通過dfs(深度優先搜索)遍歷每一個節點,他先遍歷的是右節點,然后是左節點,當遍歷的深度等于result的長度的時候,把當前節點加入到result中。

上述內容就是如何解析python二叉樹的右視圖,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

承德市| 民权县| 沁水县| 桦南县| 夏河县| 梅河口市| 遂平县| 普定县| 西充县| 平陆县| 阿坝| 申扎县| 鲁山县| 济宁市| 余干县| 平乡县| 泽州县| 会同县| 仪征市| 白山市| 镇沅| 信丰县| 溆浦县| 吴川市| 彩票| 陈巴尔虎旗| 南丹县| 武邑县| 温州市| 来凤县| 滨州市| 云梦县| 屯昌县| 普定县| 昭平县| 萨迦县| 隆回县| 沂水县| 涞水县| 托克逊县| 攀枝花市|