114. 二叉树展开为链表

非递归实现,且空间复杂度O(n):


class Solution {
    public void flatten(TreeNode root) {
        LinkedList<TreeNode> sta=new LinkedList<>();
        TreeNode p=root;
        TreeNode pre=null;
        while(p!=null||!sta.isEmpty()){
            while(p!=null){
                sta.add(p.right);//可能会压入空节点
                if(pre!=null){
                   pre.left=null;
                   pre.right=p;
                }  
                pre=p;
                p=p.left;
                    
            }
            p=sta.removeLast();
            
        }

    }
}
上一篇:C++ --取出网址中域名和协议名


下一篇:CF451E Devu and Flowers