博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode(103) Binary Tree Zigzag Level Order Traversal解题报告
阅读量:4134 次
发布时间:2019-05-25

本文共 1334 字,大约阅读时间需要 4 分钟。

Given a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, from left to right, then right to left for the next level and alternate between).

For example:

Given binary tree {3,9,20,#,#,15,7},

3   / \  9  20    /  \   15   7

return its zigzag level order traversal as:

[  [3],  [20,9],  [15,7]]

解题思路:

层次遍历二叉树,用一个标记来确定该层需要从左到右还是从右到左。

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {
List
> res; boolean flag; public List
> zigzagLevelOrder(TreeNode root) { flag = true; res = new ArrayList
>(); List
node = new ArrayList
(); if(root != null && node.add(root)) levelValue(node); return res; } public void levelValue(List
node){ TreeNode tn; TreeNode td; List
value = new ArrayList
(); List
temp = new ArrayList
(); if(node.size() == 0) return ; for(int i = 0; i < node.size(); i++){ tn = node.get(i); value.add(tn.val); td = node.get(node.size()-1-i); if(flag){ if(td.right != null && temp.add(td.right)); if(td.left != null && temp.add(td.left)); } else{ if(td.left != null && temp.add(td.left)); if(td.right != null && temp.add(td.right)); } } flag = !flag; res.add(value); levelValue(temp); }}

转载地址:http://ativi.baihongyu.com/

你可能感兴趣的文章
在Eclipse中查看Android源码
查看>>
Android使用webservice客户端实例
查看>>
[转]C语言printf
查看>>
C 语言 学习---获取文本框内容及字符串拼接
查看>>
C 语言学习 --设置文本框内容及进制转换
查看>>
C 语言 学习---判断文本框取得的数是否是整数
查看>>
C 语言 学习---ComboBox相关、简单计算器
查看>>
C 语言 学习---ComboBox相关、简易“假”管理系统
查看>>
C 语言 学习---回调、时间定时更新程序
查看>>
C 语言 学习---复选框及列表框的使用
查看>>
第十一章 - 直接内存
查看>>
JDBC核心技术 - 上篇
查看>>
一篇搞懂Java反射机制
查看>>
application/x-www-form-urlencoded、multipart/form-data、text/plain
查看>>
Longest Common Prefix -最长公共前缀
查看>>
Letter Combinations of a Phone Number
查看>>
Single Number II --出现一次的数(重)
查看>>
Valid Parentheses --括号匹配
查看>>
Count and Say
查看>>
Palindrome Partitioning --回文切割 深搜(重重)
查看>>