摘要:題目二叉樹的鏡像題目描述操作給定的二叉樹,將其變換為源二叉樹的鏡像。代碼題目從上往下打印二叉樹題目描述從上往下打印出二叉樹的每個節點,同層節點從左至右打印。解題思路借助隊列先進先出的數據結構讓二叉樹每層依次進入隊列依次打印隊列中的值代碼
二叉樹簡介
基本結構:
function TreeNode(x) { this.val = x; this.left = null; this.right = null; }
二叉樹的前序、中序、后序遍歷的定義:
前序遍歷:對任一子樹,先訪問跟,然后遍歷其左子樹,最后遍歷其右子樹;
中序遍歷:對任一子樹,先遍歷其左子樹,然后訪問根,最后遍歷其右子樹;
后序遍歷:對任一子樹,先遍歷其左子樹,然后遍歷其右子樹,最后訪問根。
題目1 二叉樹的鏡像 1.1 題目描述操作給定的二叉樹,將其變換為源二叉樹的鏡像。
輸入描述: 二叉樹的鏡像定義:源二叉樹 8 / 6 10 / / 5 7 9 11 鏡像二叉樹 8 / 10 6 / / 11 9 7 51.2 解題思路
遞歸交換二叉樹兩棵字樹的位置。
1.3 代碼function Mirror(root) { if(root){ const temp = root.right; root.right = root.left; root.left = temp; Mirror(root.right); Mirror(root.left); } }題目2 從上往下打印二叉樹 2.1 題目描述
從上往下打印出二叉樹的每個節點,同層節點從左至右打印。
2.2 解題思路1.借助隊列先進先出的數據結構
2.讓二叉樹每層依次進入隊列
3.依次打印隊列中的值
2.3 代碼function PrintFromTopToBottom(root) { const queue = []; const print = []; if(root != null){ queue.push(root); } while (queue.length > 0) { const current = queue.shift(); print.push(current.val); if (current.left) { queue.push(current.left); } if (current.right) { queue.push(current.right); } } return print; }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/101034.html
摘要:題目操作給定的二叉樹,將其變換為源二叉樹的鏡像。再遞歸的對左子樹,以及右子樹進行翻轉。比如左右有一個是代碼執行到交換沒啥問題執行到遞歸,左子樹就結束掉了。 題目 操作給定的二叉樹,將其變換為源二叉樹的鏡像。二叉樹的鏡像定義:源二叉樹 8 / 6 10 / / 5 7 9 ...
摘要:例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹并返回。操作給定的二叉樹,將其變換為源二叉樹的鏡像。劍指中還有一道類似的變種題目,就是下面的這道,之字形遍歷二叉樹。最后下面的兩道題目分別運用了二叉樹先序中序遍歷算法。 開篇 以下內容可能偏應試但很好理解,所以大家一定要堅持看下去,因為我們變強的過程注定孤獨的,堅持下來就會看到明天的太陽。 回顧 showImg(https://user-...
閱讀 2851·2021-11-19 09:40
閱讀 3709·2021-11-15 18:10
閱讀 3293·2021-11-11 16:55
閱讀 1249·2021-09-28 09:36
閱讀 1665·2021-09-22 15:52
閱讀 3378·2019-08-30 14:06
閱讀 1172·2019-08-29 13:29
閱讀 2319·2019-08-26 17:04