1. 程式人生 > >leeetcode 114 將二叉樹展開成連結串列

leeetcode 114 將二叉樹展開成連結串列

給定一個二叉樹,原地將它展開為連結串列。

思路是先利用DFS的思路找到最左子節點,然後回到其父節點,把其父節點和右子節點斷開,將原左子結點連上父節點的右子節點上,然後再把原右子節點連到新右子節點的右子節點上,然後再回到上一父節點做相同操作。

public void flatten(TreeNode root) {
    if(root == null) return;
    if(root.left != null) flatten(root.left);
    if(root.right != null) flatten(root.right);
    TreeNode temp = root.right;
    root.rigth = root.left;
    root.left = null;
    while(root.right != null) root = root.right;
    root.right = temp;
}