leetcode原題:257. 二叉樹的所有路徑
給定乙個二叉樹,返回所有從根節點到葉子節點的路徑。
說明:葉子節點是指沒有子節點的節點。
二叉樹的問題,還是遍歷的問題。
考慮題目的要求,每經過乙個節點,要把自己加入到鏈條中,然後走到下乙個節點,自然而然可以想到前序遍歷。
每次遞迴都需要獲取上一步節點的鏈路string,如果走到了葉子節點,可以直接把鏈路加入到resultlist中,並返回。
這樣大框架就出來了!
優化點:方法內部可以使用stringbuilder來進行字串拼接。
原本我寫的是字串相加,跑出來需要10ms,改成stringbuilder後,跑結果只需要1ms。
/**
* definition for a binary tree node.
* public class treenode
* }*/class solution
private void dfs(treenode root,string laststr)
stringbuilder sb = new stringbuilder(laststr);
if(root.left == null && root.right == null)
dfs(root.left,sb.tostring());
dfs(root.right,sb.tostring());
}}
資料結構與演算法 樹與二叉樹
樹是若干個結點組成的有限集合,其中必須有乙個結點是根結點,其餘結點劃分為若干個互不相交的集合,每乙個集合還是一棵樹,稱為根的子樹。當樹的結點個數為0時,我們稱這棵樹為空樹,記為 關於樹的基本術語 結點 表示樹中的元素,包括資料項和若干指向其子樹的分支 結點的度 結點所擁有的子樹的個數 葉子結點 度為...
演算法與資料結構 二叉樹
二叉樹 binary tree 二分樹 二元樹 二叉樹的遞迴定義 或是空樹,或是一棵由乙個根結點和左右子樹組成的樹,且左右子樹也是二叉樹。分枝結點 除葉結點以外的結點。二叉樹的性質 最多 2 h 1 個結點 n2 n0 1 滿二叉樹 所有分枝結點都存在左右子樹,且葉結點都在同一層。完全二叉樹 除最後...
資料結構與演算法 二叉樹
1.普通二叉樹 treenode package math public class treenode public void setdata int data public treenode getlchild public void setlchild treenode lchild publi...