packageleetcode/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */// 解法一 非递归funcflatten(root*TreeNode){list,cur:=[]int{},&TreeNode{}preorder(roo
LeetCode—108. Convert Sorted Array to Binary Search Tree 题目 https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/description/ 将一个递增数组转化为平衡二叉搜索树。平衡二叉搜索树首先是一个二叉搜索树,其次要求每一个节点的左右... ...
Given therootof a binary tree, flatten the tree into a "linked list": The "linked list" should use the sameTreeNodeclass where therightchild pointer points to the next node in the list and theleftchild pointer is alwaysnull. The "linked list" should be in the same order as apre-orde...
publicvoidflatten(TreeNoderoot){Stack<TreeNode>toVisit=newStack<>();TreeNodecur=root;TreeNodepre=null;while(cur!=null||!toVisit.isEmpty()){while(cur!=null){toVisit.push(cur);// 添加根节点cur=cur.right;// 递归添加右节点}cur=toVisit.peek();// 已经访问到最右的节点了// 在不存在左节...
114. Flatten Binary Tree to Linked List 仅供自己学习 思路: 题目要求最终的链表是按先序遍历的顺序排序,但如果用先序遍历,会导致右孩子丢失,所以后序的方法,自底向上来移动,那么下意识会想到对左子树DFS直到没有左子树。再将该节点的左子树放到该节点右子树位置,再将原右子树放到新右子树的右子树位置即可。
Given a binary tree, flatten it to a linked list in-place. For example, Given 代码语言:javascript 代码运行次数:0 运行 AI代码解释 1/\25/\ \346 The flattened tree should look like: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 ...
Can you solve this real interview question? Flatten Binary Tree to Linked List - Given the root of a binary tree, flatten the tree into a "linked list": * The "linked list" should use the same TreeNode class where the right child pointer points to the
也就是6作为5的右孩子,5作为4的右孩子,以此类推。 class Solution { private TreeNode prev = null; public void flatten(TreeNode root) { if (root == null) return; flatten(root.right); flatten(root.left); root.right = prev; root.left = null; prev = root; } }...
114. Flatten Binary Tree to Linked List 这道题自己一开始的做法是建立一个新链表然后再指向它,想到浪费空间看了题解 思路就是将左子树接在父节点的右子树上,将右子树接在左子树后,这样就是先序遍历的结果了 /** * Definition for a binary tree node....
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 思路: 递归处理每个结点,如果结点左孩子为空,则无需处理。否则先将结点右孩子挂到左孩子最右边的子孙结点,然后将左...