Leetcode-94. Binary Tree Inorder Traversal

来源:互联网 发布:java api百度云盘 编辑:程序博客网 时间:2024/05/20 00:13

前言:为了后续的实习面试,开始疯狂刷题,非常欢迎志同道合的朋友一起交流。因为时间比较紧张,目前的规划是先过一遍,写出能想到的最优算法,第二遍再考虑最优或者较优的方法。如有错误欢迎指正。博主首发CSDN,mcf171专栏。

博客链接:mcf171的博客

——————————————————————————————

Given a binary tree, return the inorder traversal of its nodes' values.

For example:
Given binary tree [1,null,2,3],

   1    \     2    /   3

return [1,3,2].

Note: Recursive solution is trivial, could you do it iteratively?

这个题目讲道理如果用递归太简单了,如果不用递归的话,我会考虑维护一个堆,每次把root结点压到堆里面,然后弹出的时候首先输出自己的值然后把右节点压入堆中。时间缘故就不用堆的方法实现了。Your runtime beats 39.24% of java submissions.

public class Solution {    public List<Integer> inorderTraversal(TreeNode root) {        List<Integer> results = new ArrayList<Integer>();generateInorder(results,root);return results;    }    public void generateInorder(List<Integer> results,TreeNode root){if(root!=null){generateInorder(results,root.left);results.add(root.val);generateInorder(results,root.right);}    }}




0 0
原创粉丝点击