# java常见算法题目

1. 判断身份证：要么是15位，要么是18位，最后一位可以为字母，并写程序提出其中的年月日。

(\d{17}[0-9a-zA-Z]|\d{14}[0-9a-zA-Z])可以用来判断是否为合法的15位或18位身份证号码。

[java] view plain
1. importjava.util.regex.Matcher;
2.
3. importjava.util.regex.Pattern;
4.
5. public classRegexTest {
6.
7.          public static void main(String[] args){
8.
9.                    // 测试是否为合法的身份证号码
10.
11.                    String[] strs = {"130681198712092019""13068119871209201x",
12.
13.                                      "13068119871209201","123456789012345""12345678901234x",
14.
15.                                      "1234567890123"};
16.
17.                    Pattern p1 =Pattern.compile("(\\d{17}[0-9a-zA-Z]|\\d{14}[0-9a-zA-Z])");
18.
19.                    for (int i = 0; i <strs.length; i++) {
20.
21.                             Matcher matcher =p1.matcher(strs[i]);
22.
23.                             System.out.println(strs[i]+ ":" + matcher.matches());
24.
25.                    }
26.
27.
28.
29.                    Pattern p2 =Pattern.compile("\\d{6}(\\d{8}).*"); // 用于提取出生日字符串
30.
31.                    Pattern p3 =Pattern.compile("(\\d{4})(\\d{2})(\\d{2})");// 用于将生日字符串进行分解为年月日
32.
33.                    for (int i = 0; i <strs.length; i++) {
34.
35.                             Matcher matcher =p2.matcher(strs[i]);
36.
37.                             boolean b =matcher.find();
38.
39.                             if (b) {
40.
41.                                      String s =matcher.group(1);
42.
43.                                      Matchermatcher2 = p3.matcher(s);
44.
45.                                      if(matcher2.find()) {
46.
47.                                                System.out
48.
49.                                                                  .println("生日为" + matcher2.group(1) + "年"
50.
51.                                                                                     +matcher2.group(2) + "月"
52.
53.                                                                                     +matcher2.group(3) + "日");
54.
55.                                      }}}}}

2编写一个程序，将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中，a.txt文件中的单词用回车符分隔，b.txt文件中用回车或空格进行分隔。

[java] view plain
1. package cn.itcast;
2.
3.
4.
5. import java.io.File;
6.
8.
9. import java.io.FileWriter;
10.
11.
12.
13. public class MainClass{
14.
15.        public static voidmain(String[] args) throws Exception{
16.
17.               FileManager a = newFileManager("a.txt",new char[]{'\n'});
18.
19.               FileManager b = newFileManager("b.txt",new char[]{'\n',' '});
20.
21.               FileWriter c = newFileWriter("c.txt");
22.
23.               String aWord = null;
24.
25.               String bWord = null;
26.
27.               while((aWord =a.nextWord()) !=null ){
28.
29.                      c.write(aWord+ "\n");
30.
31.                      bWord =b.nextWord();
32.
33.                      if(bWord !=null)
34.
35.                             c.write(bWord+ "\n");
36.
37.               }
38.
39.
40.
41.               while((bWord =b.nextWord()) != null){
42.
43.                      c.write(bWord+ "\n");
44.
45.               }
46.
47.               c.close();
48.
49.        }
50.
51.
52.
53. }
54.
55.
56.
57.
58.
59. class FileManager{
60.
61.
62.
63.        String[] words = null;
64.
65.        int pos = 0;
66.
67.        public FileManager(Stringfilename,char[] seperators) throws Exception{
68.
69.               File f = newFile(filename);
70.
72.
73.               char[] buf = newchar[(int)f.length()];
74.
76.
77.               String results = newString(buf,0,len);
78.
79.               String regex = null;
80.
81.               if(seperators.length>1 ){
82.
83.                      regex ="" + seperators[0] + "|" + seperators[1];
84.
85.               }else{
86.
87.                      regex ="" + seperators[0];
88.
89.               }
90.
91.               words =results.split(regex);
92.
93.        }
94.
95.
96.
97.        public String nextWord(){
98.
99.               if(pos ==words.length)
100.
101.                      return null;
102.
103.               return words[pos++];
104.
105.        }
106.
107.
108.
109. }

（大家正在做上面这道题，网上迟到的朋友也请做做这道题，找工作必须能编写这些简单问题的代码！）

[java] view plain
1. import java.io.File;
2.
3. import java.io.FileInputStream;
4.
5. import java.io.FileOutputStream;
6.
7. import java.io.FilenameFilter;
8.
9. import java.io.IOException;
10.
11. import java.io.InputStream;
12.
13. import java.io.OutputStream;
14.
15.
16.
18.
19.
20.
21.        public static voidmain(String[] args) throws Exception {
22.
23.               File srcDir = new File("java");
24.
25.               if(!(srcDir.exists()&& srcDir.isDirectory()))
26.
27.                             thrownew Exception("目录不存在");
28.
29.               File[] files =srcDir.listFiles(
30.
31.                      newFilenameFilter(){
32.
33.
34.
35.                                    publicboolean accept(File dir, String name) {
36.
37.                                           returnname.endsWith(".java");
38.
39.                                    }
40.
41.
42.
43.                             }
44.
45.               );
46.
47.
48.
49.               System.out.println(files.length);
50.
52.
53.               if(!destDir.exists())destDir.mkdir();
54.
55.               for(File f :files){
56.
57.                      FileInputStream  fis = new FileInputStream(f);
58.
60.
61.                      FileOutputStreamfos = new FileOutputStream(new File(destDir,destFileName));
62.
63.                      copy(fis,fos);
64.
65.                      fis.close();
66.
67.                      fos.close();
68.
69.               }
70.
71.        }
72.
73.
74.
75.        private static voidcopy(InputStream ips,OutputStream ops) throws Exception{
76.
77.               int len = 0;
78.
79.               byte[] buf = newbyte[1024];
80.
82.
83.                      ops.write(buf,0,len);
84.
85.               }
86.
87.
88.
89.        }
90.
91. }

1.

1. 得到某个目录下的所有的java文件集合

1.1 得到目录 File srcDir =new File("d:\\java");

1.2 得到目录下的所有java文件：File[] files =srcDir.listFiles(new MyFileFilter());

1.3 只想得到.java的文件： classMyFileFilter implememyts FileFilter{

publicboolean accept(File pathname){

returnpathname.getName().endsWith(".java")

}

}

2.将每个文件复制到另外一个目录，并改扩展名

2.1 得到目标目录，如果目标目录不存在，则创建之

2.2 根据源文件名得到目标文件名，注意要用正则表达式，注意.的转义。

2.3 根据表示目录的File和目标文件名的字符串，得到表示目标文件的File。

//要在硬盘中准确地创建出一个文件，需要知道文件名和文件的目录。

2.4 将源文件的流拷贝成目标文件流，拷贝方法独立成为一个方法，方法的参数采用抽象流的形式。

//方法接受的参数类型尽量面向父类，越抽象越好，这样适应面更宽广。

}

File[] listFiles(FileFilter filter){

File[] files = listFiles();

//ArraylistacceptedFilesList = new ArrayList();

File[] acceptedFiles = newFile[files.length];

int pos = 0;

for(File file: files){

boolean accepted =filter.accept(file);

if(accepted){

acceptedFiles[pos++]= file;

}

}

Arrays.copyOf(acceptedFiles,pos);

//return(File[])accpetedFilesList.toArray();

}

### 3、编写一个截取字符串的函数，输入为一个字符串和字节数，输出为按字节截取的字符串，但要保证汉字不被截取半个，如“我ABC”，4，应该截取“我AB”，输入“我ABC汉DEF”，6，应该输出“我ABC”，而不是“我ABC+汉的半个”。

首先要了解中文字符有多种编码及各种编码的特征。

假设n为要截取的字节数。

[java] view plain
1. public static voidmain(String[] args) throws Exception{
2.
3.               String str = "我a爱中华abc我爱传智def';
4.
5.               String str = "我ABC汉";
6.
7.               int num =trimGBK(str.getBytes("GBK"),5);
8.
9.               System.out.println(str.substring(0,num));
10.
11.        }
12.
13.
14.
15.        public static int  trimGBK(byte[] buf,int n){
16.
17.               int num = 0;
18.
19.               booleanbChineseFirstHalf = false;
20.
21.               for(inti=0;i<n;i++)
22.
23.               {
24.
25.                      if(buf[i]<0&& !bChineseFirstHalf){
26.
27.                             bChineseFirstHalf= true;
28.
29.                      }else{
30.
31.                             num++;
32.
33.                             bChineseFirstHalf= false;
34.
35.                      }
36.
37.               }
38.
39.               return num;
40.
41.        }

### 1、有一个字符串，其中包含中文字符、英文字符和数字字符，请统计和打印出各个字符的个数。

[java] view plain
2.
3. HashMap map = new HashMap();
4.
5. for(int i=0;i<content.length;i++)
6.
7. {
8.
9.        char c = content.charAt(i);
10.
11.        Integer num = map.get(c);
12.
13.        if(num == null)
14.
15.               num = 1;
16.
17.        else
18.
19.               num = num + 1;
20.
21.        map.put(c,num);
22.
23. }
24.
25. for(Map.EntrySet entry : map)
26.
27. {
28.
29.        system.out.println(entry.getkey()+ “:” + entry.getValue());
30.
31. }

### 1、说明生活中遇到的二叉树，用java实现二叉树 [java] view plain copy int engishCount;      int chineseCount;      int digitCount;      for(int i=0;i<str.length;i++)      {          charch = str.charAt(i);          if(ch>=’0’ && ch<=’9’)          {             digitCount++          }          elseif((ch>=’a’&& ch<=’z’) ||(ch>=’A’&& ch<=’Z’))          {             engishCount++;          }          else          {             chineseCount++;          }      }      System.out.println(……………);

[java] view plain
1. packagecom.huawei.interview;
2.
3.
4.
5. public class Node {
6.
7.    public int value;
8.
9.    public Node left;
10.
11.    public Node right;
12.
13.
14.
15.    public void store(int value)
16.
17.    {
18.
19.       if(value<this.value)
20.
21.       {
22.
23.         if(left == null)
24.
25.         {
26.
27.            left = new Node();
28.
29.            left.value=value;
30.
31.         }
32.
33.         else
34.
35.         {
36.
37.            left.store(value);
38.
39.         }
40.
41.       }
42.
43.       else if(value>this.value)
44.
45.       {
46.
47.         if(right == null)
48.
49.         {
50.
51.            right = new Node();
52.
53.            right.value=value;
54.
55.         }
56.
57.         else
58.
59.         {
60.
61.            right.store(value);
62.
63.         }
64.
65.       }
66.
67.    }
68.
69.
70.
71.    public boolean find(int value)
72.
73.    {
74.
75.       System.out.println("happen " + this.value);
76.
77.       if(value == this.value)
78.
79.       {
80.
81.         return true;
82.
83.       }
84.
85.       else if(value>this.value)
86.
87.       {
88.
89.         if(right == nullreturn false;
90.
91.         return right.find(value);
92.
93.       }else
94.
95.       {
96.
97.         if(left == nullreturn false;
98.
99.         return left.find(value);
100.
101.       }
102.
103.
104.
105.    }
106.
107.
108.
109.    public  void preList()
110.
111.    {
112.
113.       System.out.print(this.value + ",");
114.
115.       if(left!=null) left.preList();
116.
117.       if(right!=null) right.preList();
118.
119.    }
120.
121.
122.
123.    public void middleList()
124.
125.    {
126.
127.       if(left!=null) left.preList();
128.
129.       System.out.print(this.value + ",");
130.
131.       if(right!=null) right.preList();
132.
133.    }
134.
135.    public void afterList()
136.
137.    {
138.
139.       if(left!=null) left.preList();
140.
141.       if(right!=null) right.preList();
142.
143.       System.out.print(this.value + ",");
144.
145.    }
146.
147.    public static void main(String [] args)
148.
149.    {
150.
151.       int [] data = new int[20];
152.
153.       for(int i=0;i<data.length;i++)
154.
155.       {
156.
157.         data[i] = (int)(Math.random()*100) + 1;
158.
159.         System.out.print(data[i] + ",");
160.
161.       }
162.
163.       System.out.println();
164.
165.
166.
167.       Node root = new Node();
168.
169.       root.value = data[0];
170.
171.       for(int i=1;i<data.length;i++)
172.
173.       {
174.
175.         root.store(data[i]);
176.
177.       }
178.
179.
180.
181.       root.find(data[19]);
182.
183.
184.
185.       root.preList();
186.
187.       System.out.println();
188.
189.       root.middleList();
190.
191.       System.out.println();
192.
193.       root.afterList();
194.
195.    }
196.
197. }
198.
199. -----------------又一次临场写的代码---------------------------
200.
201. import java.util.Arrays;
202.
203. importjava.util.Iterator;
204.
205.
206.
207. public class Node {
208.
209.    private Node left;
210.
211.    private Node right;
212.
213.    private int value;
214.
215.    //private int num;
216.
217.
218.
219.    public Node(int value){
220.
221.       this.value = value;
222.
223.    }
224.
226.
227.
228.
229.       if(value > this.value)
230.
231.       {
232.
233.         if(right != null)
234.
236.
237.         else
238.
239.         {
240.
241.            Node node = new Node(value);
242.
243.            right = node;
244.
245.         }
246.
247.       }
248.
249.       else{
250.
251.         if(left != null)
252.
254.
255.         else
256.
257.         {
258.
259.            Node node = new Node(value);
260.
261.            left = node;
262.
263.         }
264.
265.       }
266.
267.    }
268.
269.
270.
271.    public boolean find(int value){
272.
273.       if(value == this.value) return true;
274.
275.       else if(value > this.value){
276.
277.         if(right == nullreturn false;
278.
279.         else return right.find(value);
280.
281.       }else{
282.
283.         if(left == nullreturn false;
284.
285.         else return left.find(value);
286.
287.       }
288.
289.
290.
291.    }
292.
293.
294.
295.    public void display(){
296.
297.       System.out.println(value);
298.
299.       if(left != null) left.display();
300.
301.       if(right != null) right.display();
302.
303.
304.
305.    }
306.
307.
308.
309.    /*public Iterator iterator(){
310.
311.
312.
313.    }*/
314.
315.
316.
317.    public static void main(String[] args){
318.
319.       int[] values = new int[8];
320.
321.       for(int i=0;i<8;i++){
322.
323.         int num = (int)(Math.random() * 15);
324.
325.         //System.out.println(num);
326.
327.         //if(Arrays.binarySearch(values, num)<0)
328.
329.         if(!contains(values,num))
330.
331.            values[i] = num;
332.
333.         else
334.
335.            i--;
336.
337.       }
338.
339.
340.
341.       System.out.println(Arrays.toString(values));
342.
343.
344.
345.       Node root  = newNode(values[0]);
346.
347.       for(int i=1;i<values.length;i++){
348.
350.
351.       }
352.
353.
354.
355.       System.out.println(root.find(13));
356.
357.
358.
359.       root.display();
360.
361.
362.
363.    }
364.
365.
366.
367.    public static boolean contains(int [] arr, int value){
368.
369.       int i = 0;
370.
371.       for(;i<arr.length;i++){
372.
373.         if(arr[i] == value) return true;
374.
375.
376.
377.       }
378.
379.       return false;
380.
381.    }
382.
383.
384.
385. }

### 1、从类似如下的文本文件中读取出所有的姓名，并打印出重复的姓名和重复的次数，并按重复次数排序：

1,张三,28

2,李四,35

3,张三,28

4,王五,35

5,张三,28

6,李四,35

7,赵六,28

8,田七,35

[java] view plain
1. packagecom.huawei.interview;
2.
3.
4.
6.
7. import java.io.IOException;
8.
9. importjava.io.InputStream;
10.
12.
13. importjava.util.Comparator;
14.
15. importjava.util.HashMap;
16.
17. importjava.util.Iterator;
18.
19. importjava.util.Map;
20.
21. importjava.util.TreeSet;
22.
23.
24.
25.
26.
27. public class GetNameTest {
28.
29.
30.
31.    /**
32.
33.     * @param args
34.
35.     */
36.
37.    public static void main(String[] args) {
38.
39.       // TODOAuto-generated method stub
40.
41.       //InputStream ips =GetNameTest.class.getResourceAsStream("/com/huawei/interview/info.txt");
42.
43.       //用上一行注释的代码和下一行的代码都可以，因为info.txt与GetNameTest类在同一包下面，所以，可以用下面的相对路径形式
44.
45.
46.
47.       Map results = new HashMap();
48.
49.       InputStream ips = GetNameTest.class.getResourceAsStream("info.txt");
50.
52.
53.       String line = null;
54.
55.       try {
56.
58.
59.         {
60.
61.            dealLine(line,results);
62.
63.         }
64.
65.         sortResults(results);
66.
67.       } catch (IOException e) {
68.
69.         // TODO Auto-generated catch block
70.
71.         e.printStackTrace();
72.
73.       }
74.
75.    }
76.
77.
78.
79.    static class User
80.
81.    {
82.
83.       public String name;
84.
85.       public Integer value;
86.
87.       public User(String name,Integer value)
88.
89.       {
90.
91.         this.name = name;
92.
93.         this.value = value;
94.
95.       }
96.
97.
98.
99.       @Override
100.
101.       public boolean equals(Object obj) {
102.
103.         // TODO Auto-generated method stub
104.
105.
106.
107.         //下面的代码没有执行，说明往treeset中增加数据时，不会使用到equals方法。
108.
109.         boolean result = super.equals(obj);
110.
111.         System.out.println(result);
112.
113.         return result;
114.
115.       }
116.
117.    }
118.
119.
120.
121.    private static void sortResults(Map results) {
122.
123.       // TODOAuto-generated method stub
124.
125.       TreeSet sortedResults = new TreeSet(
126.
127.            new Comparator(){
128.
129.               public int compare(Object o1, Object o2) {
130.
131.                  // TODO Auto-generated method stub
132.
133.                  User user1 = (User)o1;
134.
135.                  User user2 = (User)o2;
136.
137.                  /*如果compareTo返回结果0，则认为两个对象相等，新的对象不会增加到集合中去
138.
139.                   * 所以，不能直接用下面的代码，否则，那些个数相同的其他姓名就打印不出来。
140.
141.                   * */
142.
143.
144.
145.                  //return user1.value-user2.value;
146.
147.                  //returnuser1.value<user2.value?-1:user1.value==user2.value?0:1;
148.
149.                  if(user1.value<user2.value)
150.
151.                  {
152.
153.                     return -1;
154.
155.                  }else if(user1.value>user2.value)
156.
157.                  {
158.
159.                     return 1;
160.
161.                  }else
162.
163.                  {
164.
165.                     return user1.name.compareTo(user2.name);
166.
167.                  }
168.
169.               }
170.
171.
172.
173.            }
174.
175.       );
176.
177.       Iterator iterator =results.keySet().iterator();
178.
179.       while(iterator.hasNext())
180.
181.       {
182.
183.         String name = (String)iterator.next();
184.
185.         Integer value =(Integer)results.get(name);
186.
187.         if(value > 1)
188.
189.         {
190.
192.
193.         }
194.
195.       }
196.
197.
198.
199.       printResults(sortedResults);
200.
201.    }
202.
203.    private static void printResults(TreeSet sortedResults)
204.
205.    {
206.
207.       Iterator iterator  = sortedResults.iterator();
208.
209.       while(iterator.hasNext())
210.
211.       {
212.
213.         User user = (User)iterator.next();
214.
215.         System.out.println(user.name + ":" + user.value);
216.
217.       }
218.
219.    }
220.
221.    public static void dealLine(String line,Map map)
222.
223.    {
224.
225.       if(!"".equals(line.trim()))
226.
227.       {
228.
229.         String [] results = line.split(",");
230.
231.         if(results.length == 3)
232.
233.         {
234.
235.            String name = results[1];
236.
237.            Integer value =(Integer)map.get(name);
238.
239.            if(value == null) value = 0;
240.
241.            map.put(name,value + 1);
242.
243.         }
244.
245.       }
246.
247.    }
248.
249.
250.
251. }
252.
253. 48、写一个Singleton出来。
254.
255. 第一种：饱汉模式
256.
257. public classSingleTon {
258.
259.    private SingleTon(){
260.
261.       }
262.
263.
264.
265.    //实例化放在静态代码块里可提高程序的执行效率，但也可能更占用空间
266.
267.    private final static SingleTon instance = newSingleTon();
268.
269.    public static SingleTon getInstance(){
270.
271.       return instance;
272.
273.    }
274.
275. }
276.
277.
278.
279. 第二种：饥汉模式
280.
281. public classSingleTon {
282.
283.    private SingleTon(){}
284.
285.
286.
287.    private static instance = null;//newSingleTon();
288.
289.
290.
291.    public static synchronized SingleTongetInstance(){
292.
293.       if(instance == null)
294.
295.         instance = new SingleTon();
296.
297.       return instance;
298.
299.    }
300.
301. }
302.
303.
304.
305. 第三种：用枚举
306.
307.    public enum SingleTon{
308.
309.       ONE;
310.
311.
312.
313.    }
314.
315.
316.
317. 第三：更实际的应用（在什么情况用单例）
318.
319. public classSequenceGenerator{
320.
321.    //下面是该类自身的业务功能代码
322.
323.    private int count = 0;
324.
325.
326.
327.    public synchronized int getSequence(){
328.
329.       ++count;
330.
331.    }
332.
333.
334.
335.    //下面是把该类变成单例的代码
336.
337.    private SequenceGenerator(){}
338.
339.    private final static instance = new SequenceGenerator();
340.
341.    public static SingleTon getInstance(){
342.
343.       return instance;
344.
345.    }
346.
347.
348.
349. }
350.
351.
352.
353. 第四：
354.
355.    public class MemoryDao
356.
357.    {
358.
359.     private HashMap map = new HashMap();
360.
361.
362.
364.
365.          map.put(SequenceGenerator.getInstance().getSequence(),stu1);
366.
367.     }
368.
369.
370.
371.    //把MemoryDao变成单例
372.
373.   }
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387. Singleton模式主要作用是保证在Java应用程序中，一个类Class只有一个实例存在。
388.
389. 一般Singleton模式通常有几种种形式:
390.
391. 第一种形式: 定义一个类，它的构造函数为private的，它有一个staticprivate的该类变量，在类初始化时实例话，通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
392.
393. public class Singleton {
394.
395. private Singleton(){}
396.
397. 　　    //在自己内部定义自己一个实例，是不是很奇怪？
398.
399. 　　    //注意这是private 只供内部调用
400.
401. 　　    private static Singleton instance = newSingleton();
402.
403. 　　    //这里提供了一个供外部访问本class的静态方法，可以直接访问
404.
405. 　　    public static Singleton getInstance() {
406.
407. 　　　　    return instance;
408.
409. 　　    }
410.
411.    }
412.
413.    第二种形式:
414.
415. public class Singleton {
416.
417. 　　private staticSingleton instance = null;
418.
419. 　　public staticsynchronized Singleton getInstance() {
420.
421. 　　//这个方法比上面有所改进，不用每次都进行生成对象，只是第一次
422.
423. 　　//使用时生成实例，提高了效率！
424.
425. 　　if(instance==null)
426.
427. 　　　　instance＝new Singleton();
428.
429.                returninstance;
430.
431.    }
432.
433. }
434.
435. 其他形式:
436.
437. 定义一个类，它的构造函数为private的，所有方法为static的。
438.
439. 一般认为第一种形式要更加安全些

• 本文已收录于以下专栏：

## [Java]常见算法问题（持续学习，更新）

1.最大子序列和问题的三种算法：O(N^3),O(N^2),O(NlogN) 算法1： public static int Method1(int[] arr)//O(N^3) { int ma...
• ghbfgb
• 2016年05月08日 20:25
• 2238

## 面试10大算法汇总+常见题目解答（Java）

• dragon_dream
• 2014年04月10日 17:05
• 6535

## C#常见算法面试

• taoerchun
• 2016年06月16日 18:50
• 2917

## 算法经典面试题整理（java实现）

• DUANJIEFEI
• 2015年06月11日 19:23
• 10072

## java常见算法

1.冒泡排序 public int[] bubbleSort(int arr){ int temp; boolean isOk; for(int i = 0; i < arr.length; i...
• peng_hao1988
• 2013年09月26日 19:23
• 529

## 笔试题—字符串常见的算法题集锦

• gdutxiaoxu
• 2016年09月21日 00:01
• 3593

## C#常见算法题目(面试准备)

1.写出冒泡，选择，插入排序算法。     //冒泡排序    public class bubblesorter    ...{        public void sort(int[] list...
• jilm168
• 2007年09月07日 09:34
• 7776

## 算法竞赛常见一类一题（大部分）

• wushirenfeig
• 2017年05月15日 21:26
• 511

## 面试常考算法题总结(一)

• JIEJINQUANIL
• 2016年08月29日 23:09
• 1346

## 常见数据结构算法题目

1.把二元查找树转变成排序的双向链表 题目： 输入一棵二元查找树，将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点，只调整指针的指向。       10    / \ ...
• u011474634
• 2013年11月30日 19:54
• 691

举报原因： 您举报文章：java常见算法题目 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)