分別按照二叉樹先序,中序和後序列印所有的節點。
輸入描述:輸入一棵樹
輸出描述:輸出遍歷的二維陣列
輸入
輸出本題思路主要是通過遞迴實現對二叉樹的遍歷。[[1,2,3],[2,1,3],[2,3,1]]
通過遞迴,以及新增值的順序控制結果是那種方式的遍歷。
public
class
solution
public
void
getorder
(treenode root,
int[
] nums)
nums[0]
[pre++
]= root.val;
getorder
(root.left, nums)
; nums[1]
[midd++
]= root.val;
getorder
(root.right, nums)
; nums[2]
[post++
]= root.val;
}public
intgetrootsize
(treenode root)
return1+
getrootsize
(root.left)
+getrootsize
(root.right);}
}
先序遍歷nums[0][pre++] = root.val; 根左右
getorder(root.left, nums); 左節點遞迴
getorder(root.right, nums); 右節點遞迴
中序遍歷getorder(root.left, nums); 左節點遞迴
nums[1][midd++] = root.val; 左根右
getorder(root.right, nums); 右節點遞迴
後序遍歷小夥伴如果想測試的話,可以直接到牛客網這個鏈結做測試getorder(root.left, nums); 左節點遞迴
getorder(root.right, nums); 右節點遞迴
nums[2][post++] = root.val; 左右根
實現二叉樹先序,中序和後序遍歷-牛客網
先序中序重建二叉樹
includeusing namespace std vectorpre,in int p typedef struct node vectorpost int rec int l,int r 通過前序和後序得到樹 int main for int i 0 i tem in.push back te...
先序中序轉二叉樹
在紙上計算一下他們轉的過程就很容易發現規律 寫程式更簡單,只需要計算出每個子樹的起始位置 計算的時候使用靜態鍊錶更為方便 include include include include include using namespace std struct node vector int in,pre...
二叉樹 先序 中序 後序
同學整理的,順便傳上分享下 一,已知先序和中序 求後序 1 include2 include3 include4 using namespace std 5char s1 10 s2 10 ans 10 6 int o 0 7 void tree int n char s1 char s2 char...