本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42876699

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

For example:
Given binary tree {1,#,2,3},

   1
    \
     2
    /
   3

return [1,2,3].

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

思路:

(1)题意为前序遍历二叉树。遍历顺序为根—>左—>右。

(2)考虑到用递归比较简单,本文使用递归的思想进行解决,由于比较简单这里不累赘,详见下方代码。

(3)希望本文对你有所帮助。

算法代码实现如下:

/**
 * @author liqq
 */
public List<Integer> preorderTraversal(TreeNode root) {
	List<Integer> result = new LinkedList<Integer>();

	if (root != null) {
		result.add(root.val);
		pre_order(result, root.left);
		pre_order(result, root.right);
	}

	return result;
}

private void pre_order(List<Integer> result, TreeNode curr) {
	if (curr != null) {
		result.add(curr.val);
		pre_order(result, curr.left);
		pre_order(result, curr.right);
	}
}

最新文章

  1. java反射详解
  2. Introduction to Neural Machine Translation - part 1
  3. Go语言 模板的使用(二)
  4. oracle 11g 通过在线重定义方式修改表结构
  5. zw版【转发&#183;台湾nvp系列Delphi例程】HALCON DirectShow
  6. android学习日记20--连接组件之Intent和IntentFilter
  7. 例6.1:学生选课系统设计(界面设计、类图、数据库ER图)
  8. django 实现指定文件合并成压缩文件下载
  9. 改动已有gpg密钥的用户标识及凝视
  10. Charle抓包与wireshark使用
  11. 1945 : 卡贩子Carol
  12. Spring Boot搭建Web项目常用功能
  13. MyBatis映射文件2(不支持自增的数据库解决方案/参数处理[单参、多参、命名参数])
  14. 拓扑优化中SIMP方法与水平集方法有何优缺点,水平集法变换到高维,不是更复杂了
  15. clientWidth,offsetWidth,scrollWidth区别
  16. LY.JAVA面向对象编程.修饰符
  17. HTTP协议学习随笔
  18. 软件测试 —— Bug
  19. vuejs组件交互 - 01 - 父子组件之间的数据交互
  20. 王者参考jar包

热门文章

  1. NLP系列(4)_朴素贝叶斯实战与进阶
  2. ArrayList中的modCount与ConcurrentModificationException
  3. Mac OS: How to keep network connection alive after sleep
  4. eclipse安装和中文汉化,以及配置
  5. [OpenCV]拓展图像边界
  6. CocoaChina(总结)升级到xcode8遇到的问题及解决方案
  7. CSS3 滤镜学习
  8. 深入理解CoordinatorLayout.Behavior
  9. antlr v4 使用指南连载2——准备环境
  10. UNIX环境高级编程——Linux终端设备详解