• leecode no.114 二叉树展开为链表


    package tree;


    /**
    * 114. 二叉树展开为链表
    *
    * 给你二叉树的根结点 root ,请你将它展开为一个单链表:
    *
    * 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。
    * 展开后的单链表应该与二叉树 先序遍历 顺序相同。
    *
    *
    * @author Tang
    * @date 2021/7/26
    */
    public class Flatten {

    /**
    * 前序遍历每个节点
    * @param root
    */
    public void flatten(TreeNode root) {
    preSearch(root, null);
    }

    /**
    * 前序遍历
    * @param node 遍历到的当前节点
    * @param listNode 链表的当前节点
    * @return 最新的链表节点
    */
    private TreeNode preSearch(TreeNode node, TreeNode listNode){
    if(node == null){
    return listNode;
    }
    TreeNode right = node.right;
    TreeNode left = node.left;
    node.left = null;

    if(listNode == null){
    listNode = node;
    }else {
    listNode.right = node;
    listNode = listNode.right;
    }
    listNode = preSearch(left, listNode);
    return preSearch(right, listNode);
    }

    public static void main(String[] args) {


    }

    }
  • 相关阅读:
    Tomcat配置JNDI
    (转)通过反编译深入理解Java String及intern
    (转)Java8内存模型-永久代(PermGen)和元空间(Metaspace)
    排序算法
    并发编程
    MySQL
    Go语言
    Go语言
    Go语言
    Go语言
  • 原文地址:https://www.cnblogs.com/ttaall/p/15063070.html
Copyright © 2020-2023  润新知