本篇文章給大家分享的是有關(guān)怎樣解析python二叉樹的所有路徑,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
阿圖什網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
主要記錄一下二叉樹的所有路徑
給定一個(gè)二叉樹,返回所有從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的路徑。 說明: 葉子節(jié)點(diǎn)是指沒有子節(jié)點(diǎn)的節(jié)點(diǎn)。 示例: 輸入: 1 / \ 2 3 \ 5 輸出: ["1->2->5", "1->3"] 解釋: 所有根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的路徑為: 1->2->5, 1->3 來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/binary-tree-paths 著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public ListbinaryTreePaths(TreeNode root) { List result = new ArrayList<>(); if(root == null) { return result; } solve(root, "", result); return result; } public void solve(TreeNode root, String cur, List result){ if(root == null) { return; } cur += root.val; if(root.left==null && root.right==null) { result.add(cur); return; } solve(root.left, cur+"->", result); solve(root.right, cur+"->", result); } }
這里采用遞歸的思想,設(shè)計(jì)了solve方法,方法有個(gè)集合類型的參數(shù)用于收集路徑,另外還有一個(gè)參數(shù)用于表示路徑的前綴;每次執(zhí)行solve方法都將當(dāng)前節(jié)點(diǎn)的val追加在路徑前綴,在節(jié)點(diǎn)為葉子節(jié)點(diǎn)時(shí),將前綴添加到result中并返回;若不為葉子節(jié)點(diǎn)則將->
拼接到路徑前綴中,遞歸其左右子節(jié)點(diǎn)。
以上就是怎樣解析python二叉樹的所有路徑,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。