leetcode Flatten Binary Tree to Linked List
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode Flatten Binary Tree to Linked List相关的知识,希望对你有一定的参考价值。
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
解法:
iterative:
public void flatten(TreeNode root) { if (root==null) { return; } Stack<TreeNode> stack=new Stack<TreeNode>(); stack.push(root); while(!stack.isEmpty()){ TreeNode current=stack.pop(); if (current.right!=null) stack.push(current.right); if (current.left!=null) stack.push(current.left); if (!stack.isEmpty()) current.right = stack.peek(); current.left=null; } }
recursive:
public void flatten(TreeNode root) { if (root==null) { return; } TreeNode left=root.left; TreeNode right=root.right; flatten(left); flatten(right); root.left=null; root.right=left; TreeNode tmp=root; while(tmp.right!=null) { tmp=tmp.right; } tmp.right=right; }
以上是关于leetcode Flatten Binary Tree to Linked List的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 114. Flatten Binary Tree to Linked List
[Leetcode] Flatten Binary Tree to Linked List
[LeetCode] Flatten Binary Tree to Linked List
leetcode 114. Flatten Binary Tree to Linked List (Python版)