LeetCode004:BinaryTreePostorderTraversal
来源:互联网 发布:淘宝店铺广告短信 编辑:程序博客网 时间:2024/06/03 23:46
package com.abuge;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import org.junit.Test;/** * 有一个二叉树,返回它的后序遍历的值 * 例如: * 二叉树{1,#, 2, 3} * 1 * \ * 2 * / * 3 * 返回:[3, 2, 1] * @author AbuGe *思路: *1、对于一个List集合的后序遍历,最后一个元素肯定是链表的第一个节点 *2、递归最简单,以根节点为分割点将左右子树节点依次添加到结果链表中 *步骤: *1、递归左子树 *2、递归又子树 *3、将根节点添加到结果链表中 */class TreeNode{int val;TreeNode left;TreeNode right;TreeNode(int x){val = x;}}public class Solution{List<Integer> list = new ArrayList<Integer>();public List<Integer> postorderTraversal(TreeNode root){if(root != null){//递归出口if(root.left == null && root.right == null){list.add(root.val);root = null;}if(root != null){//递归左子树postorderTraversal(root.left);//递归右子树postorderTraversal(root.right);//添加根节点list.add(root.val);}}return list;}@Testpublic void test(){TreeNode node1 = new TreeNode(1);TreeNode node2 = new TreeNode(2);TreeNode node3 = new TreeNode(3);node1.right = node2;node2.left = node3;List<Integer> li = postorderTraversal(node1);StringBuilder sb = new StringBuilder();Iterator<Integer> it = li.iterator();sb.append('[');while(it.hasNext()){sb.append(it.next());sb.append(',');}//修改字符串格式符合要求int len = sb.length();sb.deleteCharAt(len - 1);sb.append(']');System.out.println(sb);}}
0 0
- LeetCode004:BinaryTreePostorderTraversal
- leetcode--BinaryTreePostorderTraversal
- leetcode004:add binary
- leetcode004:Median of Two Sorted Arrays
- leetcode004 Median of Two Sorted Arrays
- LeetCode004----Median of Two Sorted Arrays
- Leetcode004--排序数组寻找第k个数
- Leetcode004-Median of Two Sorted Arrays
- LeetCode004 Median of Two Sorted Arrays
- Leetcode004. Median of Two Sorted Arrays
- leetcode004-Letter Combinations of a Phone Number
- 【LeetCode004-005算法/编程练习C++】--两个数组的中间数,找出最长回文子串
- 【Note2】用keil对工程编译时,工程中已经包含的文件会报错:cannot open source input file usb_conf.h No such file or directory
- Piggy-Bank(完全背包变形)
- 模仿instagram的标题替换滚动的效果
- UvaLive 6441 Horrible Quiz(dp)
- OllyDbg快捷键记录帖
- LeetCode004:BinaryTreePostorderTraversal
- Cocos2dx 3.2的使用及其Android项目移植
- 面试总结
- 保存联系人到系统通讯录
- Red Hat Enterprise Linux 6安装samba服务
- 1.4-判断两个字符串是否由相同字符组成
- UVa 101 - The Blocks Problem|java实现
- 【PAT (Advanced Level)】1083. List Grades (25)
- 给定一个固定长度的数组,将递增整数序列写入这个数组。当写到数组尾部时,返回数组开始重新写,并覆盖先前写过的数,请在这个特殊数组中找出给定的整数