列印二叉樹所有的路徑

2021-06-06 22:11:31 字數 651 閱讀 6883

問題:

給乙個二叉樹,把所有的路徑都列印出來。

比如,對於下面這個二叉樹,它所有的路徑為:

8 -> 3 -> 1

8 -> 2 -> 6 -> 4

8 -> 3 -> 6 -> 7

8 -> 10 -> 14 -> 13

思路:從根節點開始,把自己的值放在乙個陣列裡,然後把這個陣列傳給它的子節點,子節點同樣把自己的值放在這個陣列裡,又傳給自己的子節點,直到這個節點是葉節點,然後把這個陣列列印出來。所以,我們這裡要用到遞迴。

**:

public static arraylist> printpaths(node root) 

public static void printpathshelper(node root, arraylistlist, arraylist> alllists)

printpathshelper(root.leftchild, list, alllists);

printpathshelper(root.rightchild, list, alllists);

//remove the sub-root;

list.remove(list.size() - 1);

}

二叉樹列印所有的路徑 根據陣列構建完全二叉樹

這道題目暫時沒想起來怎麼用遞迴去做,就用非遞迴吧。這道題目是的位址是 主要是用了乙個vector來儲存節點資訊,這個節點資訊是對原來節點資訊的封裝,增加了兩個單獨的引數,這兩個引數表示 左右子樹是不是存在以及是不是訪問過 預設值是 1,取0表示有子樹且沒有訪問過,取1錶子樹已經訪問過。基本邏輯是先沿...

列印二叉樹的路徑

本題源自leetcode 思路1 遞迴 先訪問根節點。然後遞迴遍歷左子樹和右子樹。遇到葉節點則儲存路徑。vectorbinarytreepaths treenode root void findpath treenode root,vector res,string s if root left i...

二叉樹的所有路徑

一 問題描述 給一棵二叉樹,找出從根節點到葉子節點的所有路徑。樣例 給出下面這棵二叉樹 1 2 3 5 所有根到葉子的路徑為 1 2 5 1 3 二 解題思路 運用遞迴的思想查詢二叉樹的所有路徑,定義乙個向量用來儲存路徑,然後運用前序遍歷二叉樹,返回查詢的的路徑,在庫檔案string中,to str...