zoukankan      html  css  js  c++  java
  • 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
    
    Hints:

    If you notice carefully in the flattened tree, each node's right child points to the next node of a pre-order traversal.

    思路:

    递归,先flatten左边的,再flatten右边的,然后进行连接

    package tree;
    
    public class FlattenBinaryTreeToLinkedList {
    
        public void flatten(TreeNode root) {
            if (root == null) return;
            flatten(root.left);
            flatten(root.right);
            if (root.left != null) {
                TreeNode tmp = root.right;
                root.right = root.left;
                root.left = null;
                TreeNode rightMostNode = root;
                while (rightMostNode.right != null) {
                    rightMostNode = rightMostNode.right;
                }
                rightMostNode.right = tmp;
            }
        }
    
    }
  • 相关阅读:
    stm32学习(一)
    linux驱动之ioctl
    request_threaded_irq()参数
    驱动初步学习
    linux命令操作
    Shell
    进程模块管理
    bash及正规表示法
    python脚本
    Python系统模块os
  • 原文地址:https://www.cnblogs.com/null00/p/5127038.html
Copyright © 2011-2022 走看看