演算法與資料結構 樹 簡單 二叉樹的所有路徑

2022-07-07 19:42:11 字數 773 閱讀 5962

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...