先序遍历树的每个结点,若遍历到的结点有子结点,则交换它的两个子结点。
1. 递归求解:
voidMirroRecursively(BinaryTreeNode *pNode)
{
if(NULL == pNode)
return;
if(NULL == pNode->Left && NULL== pNode->Right)...
分类:
其他好文 时间:
2015-07-07 17:06:22
阅读次数:
170
#include"stdio.h"
#include"malloc.h"
#include"stdlib.h"
typedef struct lNode
{
char data;
struct lNode *lchild;
struct lNode *rchild;
}LNODE,*Tree;
typedef struct Node
{
Tree data;
struct Node * Next;
}NODE, * PNODE;
typedef struct Stack
{
...
分类:
其他好文 时间:
2015-07-02 19:30:39
阅读次数:
135
n!=n*(n-1)!
import java.io.BufferedReader;
import java.io.InputStreamReader;
/**
* n的阶乘,即n! (n*(n-1)*(n-2)*...1)。
* 0!为什么=1,因为1!=1*0!,所以0!=1
*
* @author stone
* @date 2015-1-6 下午18:48:00
*...
分类:
编程语言 时间:
2015-07-01 18:27:17
阅读次数:
140
import java.io.BufferedReader;
import java.io.InputStreamReader;
//1,3,6,10,15...n 三角数
/*
* # 1
* ## 1+2
* ### 1+2+3
* #### 1+2+3+4
* ##### 1+2+3+4+5
* ...第1层为1, 第n层等于 n + (f(n-1))
...
分类:
编程语言 时间:
2015-07-01 18:11:47
阅读次数:
136
二分查找是在完全有序数组(或部分有序)中对某一元素进行快速查找的算法。时间复杂度为O(logn)。实现方式有递归和非递归。非递归实现 public int binarySearch(int[] nums, int key) { if (nums == null || nums.length == ....
分类:
其他好文 时间:
2015-06-28 12:30:48
阅读次数:
96
树的遍历方式总体上有两种:DFS和BFS;其中DFS包含了前序、中序和后序遍历,而BFS则为层次遍历。DFS的实现方式:(1) 递归;(2) 非递归,使用辅助栈;递归程序public class Recursion { public void preorderRec(TreeNode root) {...
分类:
其他好文 时间:
2015-06-25 08:53:51
阅读次数:
203
对于二叉树,有前序、中序、后序三种遍历方法,由于树的定义本身就是递归定义的,故采用递归方法实现三种遍历简洁易懂。若采用非递归访问,则需要使用栈来模拟递归的实现。三种遍历的非递归算法中,前序和后序较容易,而后序相对较难。前序遍历递归非递归树的遍历中序遍历递归非递归后序遍历递归非递归层次遍历计算树高.....
分类:
其他好文 时间:
2015-06-18 19:01:43
阅读次数:
117
题目意思:全排列思路:其实看这题目意思,是不太希望用递归的,不过还是用了递归,非递归的以后再搞吧 ps:vector这玩意不能随便返回,开始递归方法用vector,直接到500ms,换成void,到12ms 1 class Solution { 2 public: 3 vector> pe...
分类:
其他好文 时间:
2015-06-14 22:35:33
阅读次数:
185
1. 归并排序算法:
非递归实现:
void mergeSort(vector & nums, vector &tmpNums, int left, int right, int end)//right为右边一段数据的开始,同时也可以用来判断左边一段数据的结束,并且左边的数组长度总是大于或等于右边数组长度
{
int idx_left=left;
int idx_right=right;
...
分类:
编程语言 时间:
2015-06-14 13:53:11
阅读次数:
203
Given a binary tree, return the preorder traversal of its nodes’ values.For example:
Given binary tree{1,#,2,3}, 1
2
/
3return [1,2,3].递归遍历:/**C++
* Definition for a binary tree n...
分类:
其他好文 时间:
2015-06-13 11:27:51
阅读次数:
143