zoukankan      html  css  js  c++  java
  • Flatten Binary Tree to Linked List ——LeetCode

    Given a binary tree, flatten it to a linked list in-place.

    For example,
    Given

             1
            / 
           2   5
          /    
         3   4   6
    

    The flattened tree should look like:

       1
        
         2
          
           3
            
             4
              
               5
                
                 6

    题目大意:给一个二叉树,将它转为一个list,转换后的序列应该是先序遍历,list由这棵树的右孩子表示。

    解题思路:递归的处理左子树,然后处理右子树,将左孩子的右孩子置为当前节点的右孩子,然后将当前节点的右孩子置为左孩子。

        public void flatten(TreeNode root) {
            doFlat(root);
        }
    
        private void doFlat(TreeNode node) {
            if (node == null) {
                return;
            }
    
            doFlat(node.left);
            if (node.left!=null) {
                TreeNode tmp = node.left;
                while(tmp.right!=null){
                    tmp=tmp.right;
                }
                tmp.right = node.right;
                node.right = node.left;
                node.left = null;
            }
            doFlat(node.right);
        }
  • 相关阅读:
    H5基础
    函数
    分支结构/循环结构
    图解 idea打jar包的步骤
    jmeter查看使用文档后总结
    Ride的使用
    Robot Framework
    jmeter+ant+jenkins
    ant
    Mysql选择合适的数据类型
  • 原文地址:https://www.cnblogs.com/aboutblank/p/4423216.html
Copyright © 2011-2022 走看看