897. 递增顺序查找树

1. 问题

Given a tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root of the tree, and every node has no left child and only 1 right child.

给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。

2. 解题思路

按照中序遍历,并构建一棵新的树

3. 代码示例

/**
 /**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public TreeNode increasingBST(TreeNode root) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        orderAndAddList(root, list);
        TreeNode newnode = new TreeNode(0);
        TreeNode cur = newnode;
        for(int i = 0; i < list.size(); i++){
            cur = cur.right = new TreeNode(list.get(i));
        }
        return newnode.right;
    }
    public void orderAndAddList(TreeNode root, ArrayList<Integer> list){
        if(root == null) {
            return;
        }
        orderAndAddList(root.left, list);
        list.add(root.val);
        orderAndAddList(root.right, list);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,490评论 0 10
  • B树的定义 一棵m阶的B树满足下列条件: 树中每个结点至多有m个孩子。 除根结点和叶子结点外,其它每个结点至少有m...
    文档随手记阅读 13,426评论 0 25
  • 下夜班回家,看到儿子正在吃饭,周末也睡个懒觉。上午跟儿子在一起陪儿子看电视。孩子爸打电话说在楼下让把草莓搬上...
    丽娜_550e阅读 154评论 0 3
  • 《100个基本原则》 要了解,孤独是生而为人的条件。 你愈想逃避,孤独的影子愈是会紧紧追随。倒不如坦然接受“人生来...
    阳刚林黛玉阅读 166评论 0 0
  • 刚刚闺蜜一又在我们的三人群说那个最近喜欢上的男团,她本来只喜欢其中的一个,顺而喜欢了所在的组合,把每个成员都细细了...
    圩濑阅读 263评论 0 0