您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)怎樣解析python二叉樹的所有路徑,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
主要記錄一下二叉樹的所有路徑
給定一個二叉樹,返回所有從根節(jié)點到葉子節(jié)點的路徑。 說明: 葉子節(jié)點是指沒有子節(jié)點的節(jié)點。 示例: 輸入: 1 / \ 2 3 \ 5 輸出: ["1->2->5", "1->3"] 解釋: 所有根節(jié)點到葉子節(jié)點的路徑為: 1->2->5, 1->3 來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/binary-tree-paths 著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public List<String> binaryTreePaths(TreeNode root) { List<String> result = new ArrayList<>(); if(root == null) { return result; } solve(root, "", result); return result; } public void solve(TreeNode root, String cur, List<String> 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è)計了solve方法,方法有個集合類型的參數(shù)用于收集路徑,另外還有一個參數(shù)用于表示路徑的前綴;每次執(zhí)行solve方法都將當前節(jié)點的val追加在路徑前綴,在節(jié)點為葉子節(jié)點時,將前綴添加到result中并返回;若不為葉子節(jié)點則將->
拼接到路徑前綴中,遞歸其左右子節(jié)點。
以上就是怎樣解析python二叉樹的所有路徑,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。