今天的題目為114.Flatten Binary Tree to Linked List,題目再叫我們把一棵二元樹轉換成一條單向鏈結串列,而且順序要符合前序遍歷!
以下為程式碼與解說:
class Solution {
private TreeNode prev = null; // 用來記錄前一個處理過的節點
public void flatten(TreeNode root) {
if (root == null) return;
// 先處理右子樹(因為我們要先連接左子樹)
flatten(root.right);
// 再處理左子樹
flatten(root.left);
// 將目前節點的右指標指向 prev(前一個節點)
root.right = prev;
// 將左指標設為 null(符合鏈結串列要求)
root.left = null;
// 更新 prev 為目前節點
prev = root;
}
}