列印二叉樹的路徑

2021-08-11 03:42:24 字數 436 閱讀 3907

本題源自leetcode

思路1 遞迴:

先訪問根節點。然後遞迴遍歷左子樹和右子樹。遇到葉節點則儲存路徑。

**

vectorbinarytreepaths(treenode* root) 

void findpath(treenode* root,vector& res,string s)

if(root->left)

if(root->right)

}

思路2: 非遞迴

用倆個棧 來儲存訪問 路徑

**;

vectorbinarytreepaths(treenode* root) 

if(p->left)

if(p->right)

}return res;

}

列印二叉樹所有的路徑

問題 給乙個二叉樹,把所有的路徑都列印出來。比如,對於下面這個二叉樹,它所有的路徑為 8 3 1 8 2 6 4 8 3 6 7 8 10 14 13 思路 從根節點開始,把自己的值放在乙個陣列裡,然後把這個陣列傳給它的子節點,子節點同樣把自己的值放在這個陣列裡,又傳給自己的子節點,直到這個節點是葉...

二叉樹列印

舉例 1.初始化時,last 1,把1放入佇列 2.將1出隊,把1的子孩子2,3放入佇列,更新nlast 3 3.nlast更新完之後,列印上一次出隊的1,並和last比較,如果相同就列印換行,並更新last nlast 3 4.將2出隊,把2的子孩子4放入佇列,更新nlast 4 5,nlast更...

二叉樹列印

給定一顆二叉樹的頭節點head,請按照現在大家看到的這種格式列印 要求列印成 12 主要解決的問題是 如何換行 last 表示正在列印的當前行的最右節點 從左至右遍歷,如果遍歷到last節點,說明該換行了,換行之後,只需要nlast last,繼續下一行的列印過程,一直重複,直到所有的節點都列印完。...